Выход исключения затопление Эльма
-
26-09-2019 - |
Вопрос
Я использую членство ASP.NET и, в частности, копию членский код, включенный в проект MVC. Я также использую Elmah для журнала исключений. Я затоплен следующим, когда люди выйдут.
System.Web.HttpException: Server cannot set status after HTTP headers have been sent.
Вот трассировка стека отправлена
System.Web.HttpException: Server cannot set status after HTTP headers have been sent.
at System.Web.HttpResponse.set_StatusCode(Int32 value)
at System.Web.HttpResponseWrapper.set_StatusCode(Int32 value)
at System.Web.Mvc.HandleErrorAttribute.OnException(ExceptionContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
at System.Web.Mvc.Controller.ExecuteCore()
at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__4()
at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Я не могу найти причину этого. Это не вызывает проблему для конечных пользователей, но все равно хотелось бы решить / узнать об этом.
Спасибо за любую помощь или руководство.
Решение
Я нашел и исправил проблему. Я использую атрибут USESSSL, который перенаправляет любые действия для контроллера для переключения к HTTPS. Когда я удалил, что он работает нормально, мне действительно не нужны SSL на выходе, поэтому я применил атрибут всем другим действиям, а не контроллеру, и он останавливает исключение от возникновения.