【发布时间】:2010-09-30 13:49:07
【问题描述】:
我已经构建了一个简单的 Web 服务,它只使用 HttpListener 来接收和发送请求。有时,服务会因“指定的网络名称不再可用”而失败。当我写入 HttpListenerResponse 的输出缓冲区时,它似乎被抛出。
这是错误:
ListenerCallback() 错误:指定的网络名称在 System.Net.HttpResponseStream.Write(Byte[] buffer, Int32 offset, Int32 size) 中不再可用
这是代码的错误部分。 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 搜索显示这是一个常见的 IT 问题,当出现网络问题时,会显示此错误 - 大多数帮助是针对系统管理员诊断应用程序问题而不是开发人员追踪错误。我的应用已经在不同的机器、网络等上进行了测试,我认为这不仅仅是网络配置问题。
这个问题的原因可能是什么?
【问题讨论】:
-
您有任何可以发布的代码吗?显示错误的精简内容将非常有帮助。
-
添加了更多细节,奥斯汀。
-
不,还没有解决方案,@CraftyFella。
标签: web-services network-programming httplistener