Asp.net mvc 为什么404自定义错误有效,而500自定义错误无效?

Asp.net mvc 为什么404自定义错误有效,而500自定义错误无效?,asp.net-mvc,web-config,Asp.net Mvc,Web Config,我在web.config中实现了CustomErrors。404错误按预期工作,500个错误只是在RenderBody区域显示一个空的默认布局页面,其中包含标准生成的.NET HTML输出 web.config中的代码是: <customErrors mode="On"> <error statusCode="404" redirect="~/404.html"/> <error statusCode="500" redirect="~/500.html"/

我在web.config中实现了CustomErrors。404错误按预期工作,500个错误只是在RenderBody区域显示一个空的默认布局页面,其中包含标准生成的.NET HTML输出

web.config中的代码是:

<customErrors mode="On">
  <error statusCode="404" redirect="~/404.html"/>
  <error statusCode="500" redirect="~/500.html"/>
</customErrors> 

404可以在这里看到:

在这里可以看到:

(两个文件都位于服务器上的同一根位置)

这是一个布局页面,其中HTML被注入到RenderBody中

</div>
 </header>
 <!-- //Header -->

 <!DOCTYPE html>
 <html>
  <head>
   <meta name="viewport" content="width=device-width" />
   <title>Error</title>
  </head>
  <body>
   <hgroup>
    <h1>Error.</h1>
    <h2>An error occurred while processing your request.</h2>
   </hgroup>
  </body>
 </html>

<!-- Footer -->
<footer class="footer teal" role="contentinfo">
    <div class="wrap">
 ..etc...

错误
错误。
处理您的请求时出错。
等

不确定我缺少了什么?

似乎问题在于我的全局过滤器的默认配置

GlobalFilters是一种将属性与ASP.NET MVC应用程序中的每个操作方法关联的方法。我想我的项目已经自动为我解决了这个问题

在FilterConfig.cs文件的my app_start文件夹中:

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }
}
因此,通过注释掉Global.asax.cs文件中的RegisterGlobalFilters行,问题得到了解决

protected void Application_Start()
    {
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); // Comment out
如果其他人也有同样的行为,希望这能有所帮助