用户'NT AUTHORITY \ SYSTEM'登录失败。原因:无法打开显式指定的数据库

时间:2013-03-21 17:21:26

标签: c# sql-server

我有一个应用程序经常访问数据库以执行许多功能。好几天都运行良好。我今天早上收到System.Data.SqlClient.SqlException例外。当发生这种情况时,应用程序没有做任何事情。关于是什么导致这种或如何在将来阻止它的想法?

Windows事件日志

NT AUTHORITY\SYSTEM 
   Reason: Failed to open the explicitly specified database. 
   [CLIENT: <local machine>] 

异常堆栈跟踪

System.Data.SqlClient.SqlException (0x80131904): 
Cannot open database ""MyDB"" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\SYSTEM'.
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
   at System.Data.Linq.DataContext.SubmitChanges()
   at ***.SubmitContextChanges(DataContext dataContext, Int32 counter) in c:\Work\***.cs:line 332

之后的Windows事件
Attempting to load library 'xpstar.dll' into memory. 
 This is an informational message only. No user action is required.

3 个答案:

答案 0 :(得分:4)

此消息表示它确实与服务器联系,但无法打开连接字符串中指定的数据库(在异常消息中命名)。

要检查的事项:

  1. 数据库存在于SQL服务器上并且已联机。
  2. 用户有权访问指定的数据库。
  3. 登录的默认数据库是正确的,并且用户可以访问它。
  4. 连接字符串未被更改。

答案 1 :(得分:1)

事实证明,我们的一张桌子太大而且没有经常冲洗。对数据库方法的怀疑是超时的,我们的重试方法引发了错误。

答案 2 :(得分:1)

xpstar.dll没有突然加载。此dll承载管理工具使用的扩展存储过程。事件发生时加载的事实意味着服务器上存在管理工具活动。这就留下了很多关于某人可能搞砸了你的数据库的途径,甚至是暂时的。

下一步是检查administrative default trace,看看是否可以在事件发生时找到任何活动。