作者:卿笃军
原文地址:http://blog.csdn.net/qingdujun/article/details/36425825
SQL Server 2008 + VS2010 用C#编写的代码,进行数据库还原的时候,出错:
错误内容:
在向server发送请求时发生传输级错误。 (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和刚置于联机状态的server之间的负载平衡)。零(0)值将使连接池具有最大的连接超时。
通过上面的了解。我们能够看出,即使是最简单的连接字符串,也在使用连接池。
參考文献:百度知道.在向server发送请求时发生传输级错误。 (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.