在向伺服器發送請求時發生傳輸級錯誤。 (provider: 共用記憶體提供者, error: 0

來源:互聯網
上載者:User

作者:卿篤軍

原文地址:http://blog.csdn.net/qingdujun/article/details/36425825


SQL Server 2008 + VS2010 用C#編寫的代碼,進行資料庫還原的時候,出錯:

錯誤內容:

在向伺服器發送請求時發生傳輸級錯誤。 (provider: 共用記憶體提供者, error: 0 - 管道的另一端上無任何進程。

解決方案:

將SQL連結語句構造成如下:

string strLink = @"server=.;database=DataBaseName;uid=sa;pwd=123456;pooling=false";
前面的還是一樣的,只是在後面添加一個pooling=false;不使用串連池。



————————————————————————————————————————

分析說明:

其實我們一直在使用SqlServer的串連池。在連接字串中,Pooling為是否啟用串連池,預設值為true,表示啟用。


  與串連池相關的兩個重要參數是 Min Pool Size和 Max Pool Size ,分別是池中的最小串連數和池中的最大串連數,預設值分別是0和100。


  在我們建立一個串連的執行個體,並調用Open()方法時,串連池管理程式會在串連池中找到一個可用的串連;當調用Close()方法時,串連池管理程式又將串連返回到串連池中,以供下一次調用Open()方法時使用。


  另外,連接字串中的 Connection Lifetime 為串連池中的串連設定了生命週期。它的預設值為0。當串連被返回到池時,將其建立時間與目前時間作比較,如果時間長度(以秒為單位)超出了由 Connection Lifetime 指定的值,該串連就會被銷毀。 這在聚集配置中很有用(用於強制執行運行中的伺服器和剛置於聯機狀態的伺服器之間的Server Load Balancer)。零(0)值將使串連池具有最大的連線逾時。


通過上面的瞭解,我們可以看出,即使是最簡單的連接字串,也在使用串連池。



參考文獻:百度知道.在向伺服器發送請求時發生傳輸級錯誤。 (provider: 共用記憶體提供者, error: 0 - 管道的另一端上無任何[CP/OL].http://zhidao.baidu.com/question/1573456795577498260.html,2013-09-27/2014-07-02.

Qi Fei's Blog.Sql Server 串連池及其用法[CP/OL].http://www.cnblogs.com/youring2/archive/2011/06/18/2084442.html,2011-06-18/2014-07-02.


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.