Question

J'utilise l'appartenance ASP.NET, et en particulier une copie du code d'adhésion incluse dans le projet MVC. J'utilise également Elmah pour enregistrer des exceptions. Je suis inondé de ce qui suit lorsque les gens se déconnectent.

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

Voici la trace de pile envoyée

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)

Je n'arrive pas à trouver une raison à cela. Cela ne provoque pas de problème pour les utilisateurs finaux, mais aimerait toujours résoudre / en savoir plus.

Merci pour toute aide ou guidage.

Était-ce utile?

La solution

J'ai trouvé et résolu le problème. J'utilise un attribut USESSL, qui redirige toute action pour que le contrôleur passe à HTTPS. Lorsque j'ai supprimé que cela fonctionne bien, je n'ai vraiment pas besoin de SSL sur Connexion, donc j'ai appliqué l'attribut à toutes les autres actions et non au contrôleur et cela empêche l'exception de se produire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top