托管网站问题

托管网站问题

我有一个 Web 项目,我想将其发布到我们公司的托管服务器:IIS Vs.6.0。运行我们整个网站的服务器名称是:测试网站并且域是测试网我被添加为用户[电子邮件保护]

现在,在服务器的 IIS 管理器中有一个名为“websites”的文件夹,我创建了一个名为“test”的文件夹。将我的项目发布到该文件夹​​中。但这里有一个问题:

我以另一个域的身份登录我的电脑,服务器也在另一个域中。当我看到此文件夹的权限时,它显示:

[电子邮件保护]

但是,我以以下身份访问该网页:[电子邮件保护]。访问该页面时我收到此错误:

‘/’应用程序中的服务器错误。

用户“testing\test”登录失败。描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:用户“testing\test”登录失败。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[SqlException (0x80131904): Login failed for user 'testing\test'.]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5009598
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
   System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35
   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) +183
   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +239
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +195
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +232
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +185
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +33
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +524
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +479
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +108
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
   System.Data.SqlClient.SqlConnection.Open() +125
   System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user) +43
   System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() +47
   System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() +20
   System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +57
   System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +34
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +315
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   System.Data.Linq.Provider.BindingList.Create(DataContext context, IEnumerable`1 sequence) +82
   System.Data.Linq.DataQuery`1.GetNewBindingList() +40
   System.Data.Linq.DataQuery`1.System.ComponentModel.IListSource.GetList() +15
   System.Web.UI.DataSourceHelper.GetResolvedDataSource(Object dataSource, String dataMember) +54
   System.Web.UI.WebControls.ReadOnlyDataSource.System.Web.UI.IDataSource.GetView(String viewName) +41
   System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +266
   System.Web.UI.WebControls.DataBoundControl.GetData() +4
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +59
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
   System.Web.UI.WebControls.GridView.DataBind() +4
   EntityRegistration.FrontEnd.AgentList.Page_Load(Object sender, EventArgs e) in C:\Users\raj.OIS\Desktop\Dropbox\OIS Entity\EntityRegistration\EntityRegistration\FrontEnd\AgentList.aspx.cs:35
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 

这里有什么问题?

答案1

听起来您正在为 SQL Server 连接字符串使用集成安全性。如果是这种情况,您需要将网络服务或 E-SOFTIND\$MAGNUS 登录名添加到相关 SQL Server。该新登录名应为 Windows 用户,并映射到相关数据库,并根据需要在数据库中具有适当的读取/写入/删除/等权限。

如果 SQL Server 与 Web 服务器安装在同一台计算机上,请使用本地网络服务帐户。如果位于同一域内的不同计算机上,请使用 E-SOFTIND\$MAGNUS 作为 Windows 用户(这是 MAGNUS 计算机上、E-SOFTIND 域上的网络服务帐户的映射)。

请注意,用户名是域、反斜杠(“\”)、美元符号(“$”),然后是安装 Web 服务器的计算机的名称。

答案2

目前尚不清楚您的数据库位于何处,我推测是在网络服务器上。

问题是您的 Sql 配置使用在您的 Web 应用程序 (E-SOFTIND\MAGNUS$) 上下文中运行的默认 Windows 集成身份验证方法,并且所述用户未在您的数据库服务器上的 SQL 实例上设置,因此凭据被拒绝。

非常容易修复,典型的选项包括:

  • 将用户添加E-SOFTIND\MAGNUS$到 sql 实例,赋予其适当的权限(GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON SCHEMA::dbo如果您不知道的话,这是一个很好的猜测)。
  • 更改应用程序池以使用定义的用户帐户,然后授予该用户适当的 SQL 权限。
  • 彻底更改身份验证方法以使用 SQL 身份验证。创建 sql 用户,授予适当的权限,然后更改 web.config 中的连接字符串以使用新命名的 sql 用户。

但是,基本上,您需要在数据库中识别一个用户并授予其适当的权限。

相关内容