QA@IT

【困ってます】C# HttpWebRequestでTimeoutエラー発生時.....

2249 PV

とても困っていますのでお力を貸して頂きたいです。(一ヶ月以上悩んでいます。)

◼︎問題
HttpWebRequestでTimeoutエラーが発生すると高い確率でFIN_WAIT2が発生し残り続けます。(netstat -aで確認)
その結果該当のポートを再度利用した際にSoketExceptionが発生してしまいます。
※たまに発生するTimeoutエラーは防げない前提にさせてください。

◼︎どうしたいか
SoketExceptionが発生しないようにしたい。(正常にHttpWebRequestを完了させたい)

◼︎調査した結果わかっていること
・サーバを変えたらSoketExceptionが発生するようになった。
以前FIN_WAIT2が発生はしていたが時間がたつと無くなっていた、そのためSoketExceptionが発生することはなかった。
上記のことからサーバの設定の可能性が高いことから各種レジストリの値を変更したりしたが効果がない。
※正しい値を変更できてるかわからないのでコメントがあれば頂きたいです。

・そもそもFIN_WAIT2が発生すること事態を防げないかとプログラムレベルで調査
ネーグルアルゴリズムを無効にしたり、リクエスト処理時のクローズ処理を見直したが効果ない。
また試験環境のサーバではやはり時間がたつと消えました。

現状FIN_WAIT2が発生するために止むを得ずOS再起動をして対応しています。
またサーバを変えるのは最後の手段としたいです。

すいませんが宜しくお願いします。

ウォッチ

この質問への回答やコメントをメールでお知らせします。