2010-06-10 104 views
1

我正在使用ASP.NET成员资格,特别是MVC项目中包含的成员代码副本。我也使用elmah来记录异常。当人们退出时,我正在被以下内容淹没。注销异常泛滥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) 

我似乎无法找到任何原因。它不会给最终用户造成问题,但仍然想要解决/了解它。

感谢您的任何帮助或指导。

回答

0

我发现并解决了这个问题。我正在使用UseSSL属性,该属性将控制器的任何操作重定向到切换到https。当我删除它可以正常工作时,我确实不需要注销SSL,所以我将该属性应用于所有其他操作,而不是控制器,并停止发生异常。