WPF HTTPWebRequest基础连接已关闭:接收上发生意外错误

时间:2011-01-03 06:58:56

标签: c# .net wpf httpwebrequest

首先,还有一些其他类似的问题,我已经阅读了所有这些问题,但是他们有类似的问题,但它们与我的问题不同:

在WPF客户端应用程序中,我正在向各种网站发出几个HttpWebRequests。在一台特定的机器和一个特定的网站上,我收到以下错误,但只是间歇性地,大约每4或5次请求一次:

System.Net.WebException 底层连接已关闭:接收时发生意外错误。    在System.Net.HttpWebRequest.GetResponse()

并且请求上的状态为ReceiveFailure。

这是我尝试过的:

  • 将超时更改为非常高,关闭保持活动并使用http 1.0而不是1.1,所有这些都不会改变问题
  • 通过代理运行以查看发生了什么,但由于某些奇怪的原因,当我通过代理运行完全相同的代码时(通过在http Web请求上设置代理对象),不会发生此问题。
  • 我可以访问该网站没有IE和Chrome的问题
  • 在我的家庭网络上尝试了另一台机器,没有任何问题。与网络外的另一台机器类似。

将此计算机升级到Win7后发生此问题,但在返回WinXP后问题仍然存在。

非常感谢任何帮助,所有其他帖子都是为了与人们谈论他们自己的Web服务,这是一个ASP配置问题或类似的东西。我提出请求的网站也是一个ASP网站,但我不相信它与第三方网站有问题,因为这个完全相同的代码适用于其他机器而不是特定的一个。

1 个答案:

答案 0 :(得分:1)

ReceiveFailure状态表示您的应用程序开始收到响应但在收到完整邮件之前已关闭。

由于您已经更改了超时等但没有成功,问题可能是服务器在完成响应之前由于某种原因关闭了响应流。与特定计算机隔离可能表示该特定计算机上可能存在硬件问题或配置。它只适用于机器上的一个网站,这表明配置而不是硬件。那台机器上有什么不同的东西吗?更新? IIS配置?

它可能正在通过IE,Chrome和代理工作,因为那些已经内置了一些错误处理(IE和Chrome肯定会有错误处理和重试请求,我认为代理也会)。您可能必须在代码中构建一些错误处理。