1

C# で HTTP 要求を使用してビデオ デバイス (エンコーダー) をリモート コントロールするための単純な (コンソール) アプリケーションを作成しています。XML データをデバイスに送信する必要があり、デバイスは XML データを送信して応答します。

このリクエストを行うために使用しているコードは次のとおりです: http://pastebin.com/59CXR3m9

このコードをテストしようとすると、リクエストが作成され、ストリームが書き込まれます。フラグは期待どおりに表示されます"stream created"が、何も起こりません。特定の短いタイムアウト (たとえば 5 秒) を使用している場合でも、アプリケーションがスタックしているように見えます。

これをトラブルシューティングするために、System.Netトレース ログを有効にしました。WebExceptionaが によってスローされることがわかりましたGetRequestStreamが、1 つの理由から、この例外はコード内のによってキャッチされません。try/catch例外は次のとおりです。

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

オンデマンドで完全なトレースを送信できます。

また、コールスタックで別のトレースを行い、例外がスローされたことを示していますGetRequestStream: http://pastebin.com/vE5QZGBe

このコードを別のデバイスでテストしたところ、問題なく動作したため、これデバイス関連ですが、その例外がキャッチされない理由はわかりません。そして、これは本番環境の状況になる可能性があるため、コードはこれを正しく処理できる必要があります (応答を際限なく待機する必要はありません)。

誰かがすでにこの種の行動をとっていましたか?どんな提案でも大歓迎です:)

ありがとう!

参考までに: 成功したリクエストの痕跡もあります。

4

0 に答える 0