我有一个应用程序经常访问数据库以执行许多功能。好几天都运行良好。我今天早上收到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.
答案 0 :(得分:4)
此消息表示它确实与服务器联系,但无法打开连接字符串中指定的数据库(在异常消息中命名)。
要检查的事项:
答案 1 :(得分:1)
事实证明,我们的一张桌子太大而且没有经常冲洗。对数据库方法的怀疑是超时的,我们的重试方法引发了错误。
答案 2 :(得分:1)
xpstar.dll
没有突然加载。此dll承载管理工具使用的扩展存储过程。事件发生时加载的事实意味着服务器上存在管理工具活动。这就留下了很多关于某人可能搞砸了你的数据库的途径,甚至是暂时的。
下一步是检查administrative default trace,看看是否可以在事件发生时找到任何活动。