状況:msdnに記載されているようにHttpWebRequest.BeginGetResponseを使用していました。 10秒ごとにリクエストを送信するタイマーがありました。私はそれをテストしたときにxml構造の情報を受け取りました。タイマの非同期HttpWebRequest問題
結果:お客様の場所にいて、そのツールを実行していると、不完全な(したがって解析できない)xml(それぞれ約4KB)が届きました。私はブラウザをチェックインして完全に見ることができました(明らかにブラウザからの同期リクエスト?!)。コンテンツの長さに関するヘッダー情報を使用して、受信バッファのサイズを調整しました。
何が原因でしたか?知りません。データはかなり小さいです。それでも私はdeveloper fusionに記載されたThreadPool.RegisterWaitForSingleObject
のアプローチを使用してタイムアウトを定義しました。タイムアウトのために10秒も選択しました。たぶんそれは賢明な決定ではなかった、おそらくそれはタイマーの間隔よりも小さくなるはずです。事は、私はそれらの条件の下で再びテストすることはできません。私はネットワーク設定について洞察していなかった生産現場にいました。レギュュストは家庭から同時にうまくいった。
私はその分野で経験はあまりありませんが、レスポンスストリームが完全に受信される前にタイマーが新しいリクエストをトリガーするとどうなりますか?タイムアウト時間はタイマー間隔に等しいか?ここでボトルネックになる可能性のある他のヒント?
そのヒントありがとう、私は実際にStream.Readメソッドを悪用しているようです。 – rdoubleui