RESTORE后连接到数据库的问题。 SQL Server 2005和经典ASP

我有一些Seleniumtesting脚本,我用它来testing一个经典的ASP网页应用程序,但是在每次testing运行之前,用备份文件恢复数据库(SQL Server 2005)后,我遇到了问题。 在ASP尝试连接到数据库时,立即在成功的RESTORE(从运行sqlcmd的Python脚本中)之后,出现以下错误…

[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionWrite (send()).,,,Microsoft OLE DB Provider for ODBC 

这是由ADODB使用此连接string生成的…

 "DSN=mydbdsn;UID=myuser;PWD=mypass;" 

但是尝试通过ODBC从C ++ ActiveX对象进行连接也会失败,并出现相同的错误。

重新启动IIS会使事情恢复正常。 而SQL Server 2008展现了同样的问题。

有没有人有任何想法,为什么我不能连接到数据库后一个RESTORE?

谢谢,

RESTORE规范:

在脱机还原期间,如果指定的数据库正在使用中,RESTORE会在短时间后强制closures用户。

所以确保在恢复之后打开新的连接。 已经清楚logging,来自连接池的现有连接全部由RESTORE处理。 在每次testing之前清除连接池。

恢复后重新启动您的传统ASP应用程序。 这将清除还原之前的现有连接。

或者,您可以在还原之前将数据库设置为单用户模式(这应该会驱逐任何现有连接),请在继续testing之前执行还原。

用于设置单用户模式的SQL脚本是:

 ALTER DATABASE <DB_NAME_HERE> SET SINGLE_USER WITH ROLLBACK IMMEDIATE