2

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

并非每次请求都发生此异常。谁能告诉我怎么修。谢谢!

4

1 回答 1

4

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

Chrome 的 ProtocolViolationException

于 2013-10-07T04:05:39.133 回答