我在我的应用程序中启用了自定义错误。网络配置有一个条目如下:
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml">
<error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml"/>
<error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml"/>
</customErrors>
我也将该HandleError
属性应用为全局操作过滤器。我的FilterConfig
内容如下:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
此外,文件夹Error.cshtml
中定义了默认值。~/Views/Shared
然而,我的应用程序显示了丑陋的 IE 默认错误页面。
更新
我检查了自定义错误页面在除 IE 之外的所有其他浏览器中都显示正常。这是怎么回事?
进一步更新
刚找到这篇文章。http://perishablepress.com/important-note-for-your-custom-error-pages/
它说 IE 希望自定义错误页面的大小至少为 512 字节。如果您的自定义错误页面小于该大小,它将抛出自己的丑陋错误页面。
最新更新 现在一切正常,因为我增加了错误页面的有效负载。但是,对于未处理的异常,只会显示默认的 Error.cshtml 页面。对于其他状态代码,我得到一个 ASP.NET 404 说它无法在我在 web.config 文件中指定的位置找到我的自定义错误页面。我确实有自定义错误页面,并且它们具有我在 web.config 中指定的确切名称。