Я создал простой веб-сервис, который просто использует HttpListener для получения и отправки запросов. Иногда происходит сбой службы с указанным именем сети больше не доступно. Кажется, он выбрасывается при записи в выходной буфер 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);
Кажется, это не всегда большой буфер, два примера составляют 3 816 байт, и 142 619 байт эти ошибки были выброшены с интервалом около 30 секунд. Я бы не подумал, что мое единственное клиентское приложение будет перегружать HTTPlistener; клиент время от времени отправляет / получает данные, причем несколько обменов происходят один за другим.
Чаще всего поиски в Google показывают, что это распространенная ИТ-проблема, при которой, когда возникают проблемы с сетью, эта ошибка отображается - большая часть справки направлена на системных администраторов, которые диагностируют проблему с приложением, в большей степени, чем разработчики, отслеживающие ошибку. Мое приложение было протестировано на разных машинах, в сетях и т. Д., И я не думаю, что это просто проблема с настройкой сети.
В чем может быть причина этой проблемы?