Pergunta

Estou usando a associação do ASP.NET e, em particular, uma cópia do código de associação incluído no projeto MVC. Também estou usando o Elmah para registrar exceções. Estou sendo inundado com o seguinte quando as pessoas saem.

System.Web.HttpException: Server cannot set status after HTTP headers have been sent.

Aqui está o rastreamento da pilha enviado

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)

Não consigo encontrar nenhuma razão para isso. Não está causando um problema para os usuários finais, mas ainda gostaria de resolver/aprender sobre isso.

Obrigado por qualquer ajuda ou orientação.

Foi útil?

Solução

Eu encontrei e corrigi o problema. Estou usando um atributo usessl, que redireciona qualquer ação para o controlador alternar para HTTPS. Quando removi que funciona bem, eu realmente não preciso de SSL, então apliquei o atributo a todas as outras ações e não ao controlador e isso impede que a exceção ocorra.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top