В журналах событий периодически появляется ошибка «Сервер не может установить состояние после отправки заголовков HTTP».Сайт webapi работает нормально и выдает правильный вывод, даже когда это происходит.
Информация об исключении: Тип исключения: HttpException Сообщение об исключении: Сервер не может установить статус после отправки заголовков HTTP.в System.Web.HttpResponse.set_StatusCode (значение Int32) в System.Web.HttpResponseWrapper.set_StatusCode (значение Int32) в System.Web.Http.WebHost.HttpControllerHandler.d__25.MoveNext () - конец трассировки стекагде было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.Web.Http.Hhttp_HHTLHHTLHH.HerHler.HostlerHHTLHHTLHHTORH.HerHerHH.HerHHTLHHTHLHHTHHHTHHTHHHTH.HTHTHHHT.) --- Конец трассировки стека из предыдущего расположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.Web.Http.WebHost.HttpControllerHandler.d__12.MoveNext () --- Конец трассировки стека из предыдущего расположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (целевая задача) при System.Web.TaskAsyncHelper.EndTask (IAsyncResult ар) при System.Web.HttpTaskAsyncHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (IAsyncResult результат) в System.Web.HttpApplication.CallHandlerExecutionStep.InvokeEndHandler (IAsyncResult ar) в System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion (IAsyncResult ar)
Объект ответа обрабатывается напрямую (формат json не известен до времени выполнения) следующим образом.
var response= HttpContext.Current.Response;
response.StatusCode = (int) HttpStatusCode.OK;
response.Headers.Add("X-Robots-Tag", "noindex, nofollow");
response.Write("Some json");
response.Flush();
response.End();
response.End требуется, я не понимаю, почему, если эта строка пропущена, возникает аналогичная ошибка.
Почему это происходит, и есть ли лучший способ сделать это?