asp.net-mvc - ASP.NET MVC自定义错误页面(StatusCode 404抛出500)

标签 asp.net-mvc http-status-code-404

我在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/

相关文章:

asp.net - 使用WebApi时,防伪Cookie token 和表单字段 token 不匹配

c# - 将 ViewModel 数据返回到 Javascript 函数 MVC 4?

c# - Asp.net MVC-从请求的 url 获取调整大小的图像得到 404 错误

asp.net-mvc - ASP.NET中MVC应用程序的结构应该是什么?

c# - 如何使用权限而不是角色在 asp.net Identity 中授权用户?

asp.net-mvc - Asp.Net MVC + CSLA + DDD 是否可行

java - HTTP 状态 500 - 实例化 servlet 类 org.springframeworks.web.servlet.DispatcherServlet 时出错

ruby-on-rails - 自定义 404 页面 rails

spring-mvc - Spring 3-带有2个按钮的表单,向 Controller 方法发送2个参数

html - Servlet返回“HTTP状态404请求的资源(/Servlet)不可用”