2011-06-30 38 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