0

コードは次のようになります

 var request = WebRequest.Create(new Uri(reqStr, UriKind.Absolute));
                request.Method = "POST";
                request.Timeout = 15000;

 Stream dataStream = request.GetRequestStream();            
 WebResponse response = request.GetResponse();

 var dataStreamResp = response.GetResponseStream();

私は10秒ごとに呼び出しますが、正常に動作します。ローカル接続を無効にしてから有効にすると、動作するようになります。しかし、サーバーを再起動すると、タイムアウト例外が発生します (サーバーは再起動後に動作します)。何が問題ですか?

4

1 に答える 1

0

サーバーが起動してリクエストの処理を開始するのに 15 秒以上かかっているようです。

リクエストが処理中で応答を待っていて、サーバーが応答を送信する代わりに接続を閉じた場合、別の例外がスローされます。

Fiddler2 をインストールして、リクエストで何が起こっているかを確認することをお勧めします。サーバーの起動後にリクエストが開始されているかどうか、およびその場合のサーバーの動作 (接続を閉じる、最終的に応答を送信するなど) を確認できるはずです。

また、Fiddler でリクエストを保存し、サーバーの再起動直後 (数秒以内) に再生して、独立した HTTP クライアントがコードと同じ結果を表示することを確認することもできます。これにより、デバッグする価値がないことがわかります。問題はサーバーにあり、起動に時間がかかりすぎるため、クライアントコード。

ハロルド

于 2013-09-30T12:51:57.833 に答える