Выйти исключение затопления elmah - PullRequest
1 голос
/ 11 июня 2010

Я использую членство в 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)

Не могу найти причину для этого.Это не вызывает проблемы для конечных пользователей, но все же хотел бы решить / узнать об этом.

Спасибо за любую помощь или руководство.

1 Ответ

0 голосов
/ 23 июля 2010

Я нашел и исправил проблему.Я использую атрибут UseSSL, который перенаправляет любые действия для контроллера, чтобы переключиться на https.Когда я удалил его, он работает нормально, мне действительно не нужен SSL при выходе, поэтому я применил атрибут ко всем другим действиям, а не к контроллеру, и он останавливает возникновение исключения.

...