System.Net.ProtocolViolationException:Bytes to be written to the stream exceed the Content-Length bytes size specified

StackOverflow https://stackoverflow.com/questions/18203552

  •  24-06-2022
  •  | 
  •  

سؤال

I write web server code base on HttpListener, but often occur exception like it

"System.Net.ProtocolViolationException:Bytes to be written to the stream exceed the Content-Length bytes size specified".

sample code:

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

This exception is not every time request occur. Who can tell me how fix it. Thanks!

هل كانت مفيدة؟

المحلول

You seem to have the same issue as the question below. You need to check if the HttpMethod is a HEAD request; in that case you can't write bytes to the OutputStream and attempting to do so will throw the exception you are getting.

ProtocolViolationException with Chrome

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top