2010-07-19 63 views
2

我有一些Selenium測試腳本,我用它來測試一個經典的ASP網絡應用程序,但是在每次測試之前用備份文件恢復數據庫(SQL Server 2005)之後出現問題跑。緊接着成功恢復(從Python腳本運行SQLCMD ...)當ASP嘗試連接到數據庫,我得到以下錯誤...RESTORE後連接到數據庫的問題。 SQL Server 2005和經典ASP

[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

建議,問題是連接池中的連接被RESTORE斷開連接,然後嘗試被應用程序重新使用。 關閉連接池可以修復一些事情,但我寧願在每個RESTORE之前清除它,除非我找不到一種不涉及.Net的方法。誰能幫忙? – bartonlee 2010-07-20 21:06:20

回答

0

我猜想,這是事做連接池,並在數據庫被置於單用戶模式的恢復連接被殺害。

錯誤信息中是否有任何文字,而不是您的問題中的內容?

0

聲音像連接到服務器的地方被緩存。無論是連接池建立或您的代碼泄漏連接的地方...這可能與經典的ASP。

聽起來像您可能只想將IISRESET調用作爲數據恢復計劃的一部分。

2

從serverfault重複的問題複製過來:

RESTORE規格:

在脫機恢復,如果 指定的數據庫正在使用中,RESTORE 強制短 後,用戶關閉延遲。

因此請確保您在恢復後打開新的連接。正如文件中明確記載的,來自連接池的現有連接全部由RESTORE處理。每次測試前清除連接池。