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

Mak*_*Vi. 3 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>
Run Code Online (Sandbox Code Playgroud)

我的NotFound行动:

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

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

有人可以解释发生了什么吗?

Win*_*Win 6

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

public ActionResult NotFound()
{
    Response.StatusCode = 404; 
    Response.TrySkipIisCustomErrors = true; <---
    return View();
}
Run Code Online (Sandbox Code Playgroud)