2011-06-30 34 views
22

Possible Duplicate:
A transport-level error has occurred when receiving results from the server傳輸級錯誤

A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

我們把我們的服務器上間歇性地出現以下錯誤消息。我們正在使用SQL Server 2008數據庫運行一個asp.net 4 Web應用程序。有沒有人遇到過這個錯誤信息和解決方案來阻止這種情況的發生。

奇怪的是,這個問題並沒有發生在我們的開發系統上,而且由於這個問題的零星性質,我們發現它很難複製。

還沒有找到解決此問題的方法。

+1

如果有人(例如DBA或某個服務器進程)終止連接,也會發生此錯誤。 – Trumpi

回答

24

隨着錯誤消息表示,有一個連接問題在SQL Server中先前打開的會話。

嘗試:

SqlConnection.ClearAllPools(); 

SqlConnection.ClearAllPools Method重置(或清空)連接池。如果在通話時有連接正在使用,它們將被正確標記,並且當它們被調用時將被丟棄(而不是返回到池)。

+0

是的,我有過這個之前,當我刪除一個開發數據庫,​​而網站正在運行並重新創建它,忘記重新啓動網站和網站正在使用舊的SQL會話 –

4

是的,我其實有幾次。非常非常無禮的錯誤。 如果我沒有弄錯與命名管道有關,而不是正在使用共享內存。

請看下面的鏈接應該幫助你理清isse。

Link 1 Link 2

+0

謝謝@jethro我看着web.config文件,我們正在利用'本地主機'我想我可能會'(本地)'試圖看看這是否有任何區別。 –

+0

不,你實際上必須看看sql服務器。轉到SQL Server =>配置工具=> Sql服務器配置管理器,你需要看看那裏使用的SQL。 – Jethro