タイムアウトとReadWriteTimeoutの両方をHttpWebRequestに設定しました。まだ存在しないサーバーに接続しようとすると、GetRequestStreamはタイムアウトしません。私は過去にDNS解決が打ち切られたときに同様の問題に遭遇しましたが、今回は問題のサーバーが自分のマシン(localhost)上で実行されているため、これは関係ありません。HttpWebRequest.GetRequestStreamでタイムアウトを設定するにはどうすればよいですか?
シナリオはこれです:私は私のサーバー
- 私は正常に私は、サーバー
- を殺す、それに接続するPOSTを実行し、
- 要求/応答ストリームを閉じI再度接続しようとすると、私が設定したタイムアウトに達することを期待します。
この時点でスレッドがハングします。私はKeepAliveをfalseに設定しようとしましたが、それは助けになりませんでした。
私は上記のシナリオを別のスレッドで実行することを考えましたが、それが長すぎる場合は自分自身でやってください。しかし、この解決策は非常に醜いものであり、リソースリークを防ぎません。
もちろん、私はこの1つを逃した方法を確信していません:) – ripper234