2010-08-12 138 views
0

我正在對我的項目進行單元測試。在一種情況下,我必須停止sql服務器並驗證我的應用程序是否可以優雅地處理這種異常。sql服務器重新啓動後SQL服務器連接失敗

但我發現在這個測試用例運行後,如果測試用例需要訪問數據庫,任何測試用例運行後都會失敗。錯誤是'運輸水平錯誤'。

在每個測試案例中,我將設置一個新的sql連接並優雅地關閉它。我認爲測試案例是非常好的。我不明白爲什麼重新啓動SQL服務器會導致這樣的錯誤。

目前,我將不得不重新啓動後自己擊中sql服務器。我認爲這確實是一個醜陋的解決方案。

+0

你可以在每個測試中顯示連接到sqlserver的代碼嗎? – Kangkan 2010-08-12 05:21:28

+0

所以要清楚,你停止SQL Server的一個測試用例,重新啓動它,等待它開始(!)的合理時間,然後運行後續測試? – 2010-08-12 05:22:46

+3

零接收率是一個主要的威懾力量。 – Kangkan 2010-08-12 05:23:10

回答

0

這是正常現象。重新啓動SQL Server意味着所有連接都會被終止,包括應用程序(可能是連接的)連接。我認爲你只需要處理這個錯誤並重試。無可否認,這是一種痛苦。

+0

是的,我猜它有一些與sql連接池有關的事情。但我想在重新啓動sql服務器之後,連接池應該都是無效的,並且sql server不應該返回給我的池連接。 – davidshen84 2010-08-13 10:46:42