我正在创建一个简单的(控制台)应用程序,使用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
我用另一台设备测试了这段代码并且工作正常,所以也与设备相关,但我看不出为什么不会捕获该异常的原因。由于这可能是一种生产情况,因此代码必须能够正确处理(而不是无休止地等待响应)。
有人已经有过这种行为吗?非常感谢任何建议:)
谢谢!
仅供参考:如果可以提供帮助,我也有成功请求的痕迹