当StatusCode不是200时,自定义404页面不显示

时间:2015-04-08 18:35:42

标签: asp.net asp.net-mvc iis-7 asp.net-mvc-5.2

在我的web.config文件中,我启用了自定义错误:

<customErrors mode="On" defaultRedirect="~/Error">
    <error redirect="~/Error/NotFound" statusCode="404" />
</customErrors>

我的NotFound行动:

public ActionResult NotFound()
{
    Response.StatusCode = 404;  //no issues when this is not set
    return View();
}

问题: 此配置在本地服务器上正常工作,但当我将其移动到远程服务器时,除非NotFound操作的状态代码设置为200,否则不会显示自定义404页面(显示IIS默认值为404)。

有人能解释一下发生了什么吗?

1 个答案:

答案 0 :(得分:6)

您还希望通过将TrySkipIisCustomErrors设置为true来禁用IIS自定义错误。

public ActionResult NotFound()
{
    Response.StatusCode = 404; 
    Response.TrySkipIisCustomErrors = true; <---
    return View();
}