Domanda

Sto usando l'iscrizione ASP.NET, e in particolare una copia del codice di appartenenza incluso nel progetto MVC. Sto anche usando Elmah per registrare le eccezioni. Mi sto allagati da quanto segue quando le persone firmano.

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

Ecco la traccia dello stack inviata

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)

Non riesco a trovare alcun motivo per questo. Non sta causando un problema per gli utenti finali, ma vorrebbe comunque risolverlo.

Grazie per qualsiasi aiuto o guida.

È stato utile?

Soluzione

Ho trovato e risolto il problema. Sto usando un attributo Usessl, che reindirizza qualsiasi azione per il controller per passare a HTTPS. Quando ho rimosso che funziona bene, non ho davvero bisogno di SSL durante la firma, quindi ho applicato l'attributo a tutte le altre azioni e non al controller e impedisce che si verifichi l'eccezione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top