Pregunta

Estoy usando la membresía de ASP.NET, y en particular una copia del código de membresía incluido en el proyecto MVC. También estoy usando Elmah para registrar excepciones. Me estoy inundando con lo siguiente cuando la gente se registra.

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

Aquí está el rastro de la pila 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)

Parece que no puedo encontrar ninguna razón para esto. No está causando un problema para los usuarios finales, pero aún así le gustaría resolver/aprender al respecto.

Gracias por cualquier ayuda o orientación.

¿Fue útil?

Solución

He encontrado y solucionado el problema. Estoy usando un atributo USesSL, que redirige cualquier acción para que el controlador cambie a HTTPS. Cuando eliminé que funciona bien, realmente no necesito SSL en INSTACT, por lo que apliqué el atributo a todas las demás acciones y no al controlador y evita que ocurra la excepción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top