Я пишу сервера базы кода веб на HttpListener, но часто встречаются исключения, как этоSystem.Net.ProtocolViolationException: Байты должны быть записаны в поток превышает размер Content-Length байтов указано
«System.Net. ProtocolViolationException: байты, которые должны быть записаны в поток , превышают указанный размер байтов длины содержимого.
Пример кода:
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);
}
}
Это исключение не запрос каждый раз, когда происходит. Кто может сказать мне, как это исправить. Благодаря!
но я использовал только GET, POST, PUT, DELETE в HTTPMethod. – user2677620
Клиент все еще может отправить вам запрос главы. Вы поймаете это, журнал и ошибки и выручите? Если нет, тогда вам нужно проверить, получаете ли вы запрос главы в этом случае. – huntharo
Я посылаю запрос HEAD с Fiddler, сервер throw ProtocolViolationException. браузер автоматически отправит запрос HEAD? – user2677620