我通過互聯網閱讀了很多文章和類似主題的答案,但沒有找到我的問題的原因。SQL Server共享內存通信協議使用情況
我有一個.NET 4 Windows服務連接到同一臺機器上的SQL Server Express。在生產過程中只有一次發生以下錯誤:
「與服務器建立了連接,但在登錄過程中發生錯誤(提供程序:命名管道提供程序,錯誤:0 - 否過程在管道的另一端。)「。
如果我們使用命名管道協議,因爲我們沒有在服務器上啓用它們,導致出現此錯誤的原因很明顯。但我的問題是爲什麼命名管道協議可以在這裏使用?在連接字符串中,我們使用了「Data Source =。\ SQLEXPRESS」。考慮到msdn和互聯網上的信息,我的理解是,當「。」始終使用必須使用「共享內存協議」。那麼,爲什麼ADO.NET SqlClient決定使用命名管道協議呢?
大部分時間一切正常,但我需要知道這個過程,以便我們可以防止此類型的任何進一步的錯誤,如果需要的話。
由於提前, 託多爾
首先感謝您的答案。我想知道的是,在什麼情況下,Sql Client會引發異常。例如。當SM協議失敗時,下一次嘗試使用命名管道,我們有一個異常,因爲它在服務器上被禁用,但是不是失敗,因此嘗試使用TCP?另外,如果我們有最大允許超時10秒,我們不會嘗試每個協議10秒。一句話,哪個失敗會導致下一個協議的嘗試,並會導致立即異常? – 2011-04-18 08:23:26