还原数据库要求我们回收IIS应用程序池

时间:2015-02-26 12:50:08

标签: asp.net sql-server iis sql-server-2012 nunit

我们的网络测试(基本上是NUnit测试)有一个奇怪的情况:

  • SetUp方法中,每个测试都会恢复数据库
  • 有时所有后续测试都会失败并显示以下SqlException

    SqlException(0x80131904):无法打开数据库" OurDatabaseName"登录请求。登录失败。用户' NT AUTHORITY \ NETWORK SERVICE'登录失败。

  • 访问权限是正确的,因此错误会产生误导。

  • 我们一旦为应用程序回收IIS应用程序池,一切都恢复正常

此问题大约发生。五次执行中的一次。如果我们删除数据库还原调用 - >完全没问题。在恢复我们的数据库时似乎存在某种竞争条件,而这种数据库并没有以某种方式关闭旧连接?!

在恢复数据库以强制终止与数据库的所有连接之后是否需要执行特殊代码?

我们在恢复数据库后已经调用了SqlConnection.ClearAllPools();(但是,来自网络测试项目...所以不知道这是否会对网络应用程序产生影响)。

1 个答案:

答案 0 :(得分:0)

看起来有些东西阻止了连接。确保您已关闭远程连接或防病毒可能是导致失败的原因。检查您的防病毒日志或隔离列表是否存在sql server的服务(如果存在),然后尝试将其移至排除列表。