我在HttpListener上编写Web服务器代码,但经常会出现类似的异常
“System.Net.ProtocolViolationException:要写入的字节 流超过指定的Content-Length字节大小“。
示例代码:
context.Response.Output = System.Text.Encoding.UTF8.GetBytes("xxx");
if (context.Response.Output != null && context.Response.Output.Length > 0)
{
context.Response.ContentLength64 = context.Response.Output.Length;
using (var stream = context.Response.OutputStream)
{
stream.Write(context.Response.Output, 0, context.Response.Output.Length);
}
}
每次发出请求时都不会发生此异常。 谁能告诉我如何修复它。谢谢!
答案 0 :(得分:3)
您似乎遇到与下面问题相同的问题。您需要检查HttpMethod是否是HEAD请求;在这种情况下,你不能将字节写入OutputStream,并且尝试这样做会抛出你得到的异常。