MVC4 - 在发送HTTP标头后,服务器无法设置状态

时间:2014-07-06 22:55:38

标签: asp.net-mvc-4 redirect

从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

无法解决这个问题,因为上面的返回重定向行是第一次回送会话。

1 个答案:

答案 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);