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
  •  | 
  •  

Domanda

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!

È stato utile?

Soluzione

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top