HttpWebRequest.GetRequestStream抛出的System.Net.WebException未被捕获

时间:2013-02-20 11:21:53

标签: c# exception httpwebrequest webexception

我正在创建一个简单的(控制台)应用程序,使用C#使用HTTP请求远程控制视频设备(编码器)。我需要将XML数据发送到设备,设备通过发送XML数据来响应。

我用来执行此请求的代码如下:http://pastebin.com/59CXR3m9

当我尝试测试此代码时,会创建请求并写入流。我可以按预期看到"stream created"标志,但是没有任何反应。即使我使用特定的低超时(例如5秒),应用程序似乎也会卡住。

要解决此问题,我激活了System.Net跟踪日志记录。我发现WebException引发了GetRequestStream,但由于某种原因,我的代码中的try/catch未发现异常 。这是例外:

System.Net Error: 0 : [1344] Exception in the HttpWebRequest#44223604:: - The underlying connection was closed: The connection was closed unexpectedly.

我可以按需发送完整的跟踪。

我还用callstack做了另一个跟踪,显示GetRequestStream引发了异常:http://pastebin.com/vE5QZGBe

我用另一台设备测试了这段代码并且工作正常,所以与设备相关,但我看不出为什么不会捕获该异常的原因。由于这可能是一种生产情况,因此代码必须能够正确处理(而不是无休止地等待响应)。

有人已经有过这种行为吗?非常感谢任何建议:)

谢谢!

仅供参考:如果可以提供帮助,我也有成功请求的痕迹

0 个答案:

没有答案