我有一些Selenium测试脚本,我用它来测试经典ASP Web应用程序,但是在运行每个测试之前使用备份文件还原数据库(SQL Server 2005)后我遇到了问题。在成功的RESTORE(从运行sqlcmd的Python脚本...)后,当ASP尝试连接到db时,我立即得到以下错误...
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionWrite (send()).,,,Microsoft OLE DB Provider for ODBC
这是由ADODB使用此连接字符串...
生成的"DSN=mydbdsn;UID=myuser;PWD=mypass;"
但是尝试通过ODBC从C ++ ActiveX对象进行连接也会失败并出现相同的错误。
重新启动IIS使事情恢复正常。 SQL Server 2008也出现了同样的问题。
有没有人知道为什么我在RESTORE之后无法连接到数据库?
谢谢,
答案 0 :(得分:2)
从serverfault复制重复问题:
来自RESTORE
规范:
在脱机还原期间,如果是 指定的数据库正在使用中,RESTORE 短暂后迫使用户关闭 延迟。
因此,请确保在还原后打开新连接。来自连接池的现有连接都被RESTORE破坏,如明确记录的那样。在每次测试之前清除连接池。
答案 1 :(得分:0)
我猜这与连接池有关,当数据库进入单用户模式进行恢复时,连接被终止。
除了你问题中的内容之外,错误信息中是否有任何文字?
答案 2 :(得分:0)
听起来像某个地方正在缓存与服务器的连接。建立连接池或者你的代码在某处泄漏连接......很可能是经典的asp。
听起来您可能只想让IISRESET调用成为数据恢复计划的一部分。