我们在一个WinForms应用程序中使用WebClient,.NET 3.5sp1。对于一些用户,这会导致异常,并显示以下消息:
“底层连接已关闭:服务器关闭了预期保持活动状态的连接。”
在网络上搜索一下,建议“解决”方法就是禁用HTTP keepalive,但我们真的不想这么做,还有一些人认为这可能是.NET库中的错误等。
错误消息表明,这是一个keepaliv的HTTP连接,由于某些原因被服务器(或代理)关闭,而WebClient没有正确检测到它的底层情况。
我们考虑捕获这种特定情况,然后简单地重试请求。然而,我们无法复制此异常。所以:
如何正确捕获导致上述错误消息的情况。
catch(WebException ex) { if (ex.Message == "The underlying connection was closed: A connection that was expected to be kept alive was closed by the server") { ... }
感觉不太可靠。
您有关于如何复制上述异常的任何提示吗?