我在web.config中设置了customErrors

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

这在本地工作正常。 404引发404。在共享主机上,它将引发标准服务器404页面,除非我专门将404设置为指向/Error/NotFound。没关系。现在它将显示自定义404页面,但响应状态代码为200。因此,如果我尝试抛出Response.StatusCode = 404;在我的ErrorController中的NotFound操作中,如下所示:
public class ErrorController : Controller
{
    public ActionResult NotFound()
    {
        Response.StatusCode = 404;
        return View();
    }
}

服务器抛出状态码500 Internal Server Error,但是我的GeneralError页面没有显示,只是空白的空白页面,没有任何来源。

我尝试了许多不同的组合,但似乎找不到如何使它显示我的自定义404页面以及404响应的方法。

有任何想法吗?

最佳答案

我在这里发现了一些有趣的信息:http://blog.angrypets.com/2008/03/responsetryskip.html

Response.TrySkipIisCustomErrors = true;
TrySkipIisCustomErrors之后将true设置为Response.StatusCode = 404;可以解决此问题。

关于asp.net-mvc - ASP.NET MVC自定义错误页面(StatusCode 404抛出500),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2376739/

10-12 20:39