HttpListenerを使用してリクエストを送受信する単純なWebサービスを構築しました。場合によっては、「指定されたネットワーク名は使用できなくなりました」というメッセージが表示されてサービスが失敗することがあります。HttpListenerResponseの出力バッファーに書き込むとスローされるようです。
エラーは次のとおりです。
ListenerCallback()エラー:指定されたネットワーク名はSystem.Net.HttpResponseStream.Write(Byte []バッファー、Int32オフセット、Int32サイズ)で使用できなくなりました
これがコードの有罪部分です。responseStringは、クライアントに返送されるデータです。
buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = buffer.Length;
output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
常に巨大なバッファであるとは限りません。2つの例は3,816バイトで、142,619バイトで、これらのエラーは約30秒間隔でスローされました。私の単一のクライアントアプリケーションがHTTPlistenerをオーバーロードするとは思わないでしょう。クライアントは時折データをバーストで送受信し、いくつかの交換が次々に発生します。
ほとんどのGoogle検索では、これが一般的なITの問題であり、ネットワークの問題がある場合にこのエラーが表示されることが示されています。ほとんどのヘルプは、開発者がバグを追跡するよりも、アプリの問題を診断するシステム管理者に向けられています。私のアプリはさまざまなマシンやネットワークなどでテストされており、単なるネットワーク構成の問題ではないと思います。
この問題の原因は何でしょうか?