質問

特にコードを提供していないため、これはあいまいな質問であることはわかっていますが、.Net 2.0アプリケーションを開発しており、内部に構築されたAPIにデータをポストするWebRequestがあります。

奇妙なことは、リクエストのGetRequestStream()メソッドで失敗する3番目(および常に3番目)の後続リクエストで発生します。 1回目と2回目の呼び出しでは、すべて問題ありません。 3回目には少しハングアップし、最終的にタイムアウトします。

APIは社内の他のアプリケーションから呼び出されているため、サーバー側またはネットワークの問題ではないことがわかります。いくつかのマシンで試してみましたが、すべて同じマシンに問題があります。誰も以前にこの問題を経験したことはありませんか、またはデバッグ方法についての提案を持っていますか(応答オブジェクトが何も表示しないか、少なくとも有用なものがないため)。

役に立ちましたか?

解決

これは通常、WebResponseを破棄しない場合に発生します。クライアントから同じマシンへの接続数には制限が適用され、デフォルトでは2つです。 WebResponseを閉じると、接続を再利用(または閉じる)できます。 usingステートメントはあなたの友達です:

WebRequest request = [...];
// Do stuff with the request stream here (and dispose it)
using (WebResponse response = request.GetResponse())
{
    // Stuff with the response
}

他のヒント

はい、まさにその通りです。応答が適切に処理されていませんでした。私たちはこれをガベージコレクターに任せていました。残念ながら、ブラウザを閉じて、回答を読むのを忘れました(私はどのように愚かだと思いますか)、問題は解決しました。

今夜、2つのことを学びました。 1、WebRequestsを適切に破棄します。 2、スタックオーバーフローの回答にもっと注意を払ってください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top