System.Net.ProtocolViolationException:要写入流的字节数超过指定的Content-Length字节大小

时间:2013-08-13 07:53:24

标签: c# outputstream httplistener

我在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);
    }
}

每次发出请求时都不会发生此异常。 谁能告诉我如何修复它。谢谢!

1 个答案:

答案 0 :(得分:3)

您似乎遇到与下面问题相同的问题。您需要检查HttpMethod是否是HEAD请求;在这种情况下,你不能将字节写入OutputStream,并且尝试这样做会抛出你得到的异常。

ProtocolViolationException with Chrome