从MVC3转移到MVC4后,此行
Return Redirect("https://secure.mysite.com/account/signup")
开始抛出异常
Server cannot set status after HTTP headers have been sent
这是
中的方法Function signup() As ActionResult
Dim HTTP_HOST = Request.ServerVariables("HTTP_HOST")
If Request.IsSecureConnection = False Or HTTP_HOST <> "secure.mysite.com" Then
Return Redirect("https://secure.mysite.com/account/signup")
End If
'more code here
Return View(_viewModel)
End Function
无法解决这个问题,因为上面的返回重定向行是第一次回送会话。
答案 0 :(得分:8)
我的代码中有类似的问题,我可以看到ELMAH日志记录:System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.
我认为异常是因为Response.End和Response.Redirect不会导致MVC应用程序中的线程中止(Response.Redirect实际上不是MVC管道的一部分)。
尝试:
return new RedirectResult("https://secure.mysite.com/account/signup", true);