"A transport-level error has occurred when sending the request to the server"的解决办法

时间:2020-12-20 21:32:22

http://blog.csdn.net/luckeryin/article/details/4337457

最近在做项目时,遇到一个随机发生的异常:"A transport-level error has occurred when sending the request to the server...",异常被抛出,但却不影响程序的正常使用.可以客户却不这么认为.所有的问题都应该解决,尽管不影响正常使用.

然而,这个异常的抛出,最初搞得我一头雾水."A transport-level error",感觉好像不是我代码的问题,更像是传输中出了问题.但要解决问题,这让我从何下手呢?

有问题,百度一下.终于找到了问题的真正原因:

这个情况是通常是因为SQL Server遇到了一些Issues而不得不去刷新所有的连接,但是ADO.net仍然认为这些连接是有效的,而其实,可能在使用的过程中,某些连接早已失效。

看来问题出在SQL的连接上了.而且是过期的连接影响了正常的刷新.知道了问题的根源,解决它就是不问题了.

通过调用连接对象的ClearPoool方法来清除这些连接池是失效的连接,也可以调用SqlConnection.ClearAllPools()方法来清理所有连接的连接池.

问题就这样迎刃而解了.