0

当我尝试运行包含 EntityDataSource 和 Listview 的页面时,我收到了臭名昭著的用户“NT AUTHORITY/NETWORK SERVICE”登录失败。这是堆栈跟踪:

[SqlException(0x80131904):用户'NT AUTHORITY\NETWORK SERVICE'登录失败。] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection)+4846887 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35 System.Data.SqlClient。 SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +144 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host,String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +342 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221 System.Data.SqlClient.SqlInternalConnectionTds.. ctor(DbConnectionPoolIdentity identity,SqlConnectionString connectionOptions,对象 providerInfo,String newPassword,SqlConnection owningObject,Boolean redirectedUserInstance)+189 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项,对象 poolGroupProviderInfo,DbConnectionPool 池,DbConnection owningConnection)+185 System.Data。 ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool 池,DbConnectionOptions 选项)+31 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)+433 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)+66 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) ) +499 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117 System.Data.SqlClient.SqlConnection.Open() +122 System .Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String mappedOperation, Boolean&关闭商店连接失败)+47

[EntityException:底层提供程序在打开时失败。] System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String mappedOperation, Boolean& closeStoreConnectionOnFailure) +168 System.Data.EntityClient.EntityConnection.Open () +96 System.Data.Objects.ObjectContext.EnsureConnection() +81 System.Data.Objects.ObjectQuery 1.GetResults(Nullable1 forMergeOption) +46 System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +39 System.Linq.Enumerable.Single(IEnumerable1 源) +107 System.Data.Objects.ELinq.ObjectQueryProvider .b__2(IEnumerable 1 sequence) +5 System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable1 查询,表达式 queryRoot)+25 System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(表达式表达式)+43 System.Linq.Queryable.Count(IQueryable1 source) +240 System.Web.UI.WebControls.EntityDataSourceQueryBuilder1.Build(ObjectContext context, Boolean computeCount) +154 System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments, Creator qbConstructor) +889 System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +102 System .Web.UI.DataSourceView.Select(DataSourceSelectArguments 参数,DataSourceViewSelectCallback 回调) +19 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142 System.Web.UI.WebControls.ListView.PerformSelect() +57 System.Web .UI.WebControls.BaseDataBoundControl.DataBind() +73 System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82 System.Web.UI.WebControls.ListView.CreateChildControls() +55 System.Web.UI.Control。 EnsureChildControls() +87 System.Web.UI.Control.PreRenderRecursiveInternal() +44 系统。Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)+842

这是我的 EntityDataSource 的内容:

<asp:EntityDataSource ID="PartsDataSource" runat="server" 
ConnectionString="name=Diel_inventoryEntities" 
DefaultContainerName="Diel_inventoryEntities" EntitySetName="PartList" 
EntityTypeFilter="PartList" 
Select="it.[PARTNUMBER], it.[NSN], it.[PARTNAME], it.[REV], it.[CUSTOMER]">
</asp:EntityDataSource>

除了创建 .edmx 文件、listview 和 entitydatasource 之外,我还需要采取其他步骤来解决此错误消息吗?

谢谢, 席德

4

2 回答 2

6

这意味着用户 NT AUTHORITY/NETWORK SERVICE 用于登录数据库,并被拒绝。您应该让网站在不同的用户帐户下运行(使用模拟),或者更改连接字符串以指定 sql 帐户/通行证。这两种解决方案都要求您在 SQL Server 中创建登录名,并授予该用户必要的权限。

于 2009-12-19T23:40:21.447 回答
0

试试这个。我在重新IIS设置时遇到了同样的错误。我用了 :

"integrated security=false;User Id=sa;Password=yourpassword" 
于 2013-12-18T06:59:20.263 回答