【发布时间】:2011-06-18 01:58:05
【问题描述】:
我已经尝试了所有方法,甚至卸载了 asp.net mvc3,但我无法让 HandleError 全局过滤器正常工作。
我已经在 Global.asax 中设置了 HandleError 过滤器:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
我还启用了 CustomErrors(我是否设置 defaultRedirect="Error" 都没有关系,我认为这在文档中,因为旧版本的 mvc 需要):
<customErrors mode="On" />
尝试浏览页面直到出现错误,无论您是从本地主机还是使用主机名,在开发服务器或 IIS 7.5 内,它总是重定向到标准状态 500 页面,而不是我的自定义 Error.cshtml我在 Shared 中创建的视图。这是错误视图代码:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Oooops";
}
<h2>Ooops Something really bad happened!</h2>
我还注意到,如果我创建一个新的 ASP.NET MVC3 项目,然后选择“Internet 应用程序”模板,并在该项目中启用 customErrors,则 HandleError 过滤器开始正常工作,但是使用空的 MVC3 模板没有。
我想澄清一下,我确实可以在调试时看到正在处理的错误视图,但是浏览器总是显示错误 500 页面。
【问题讨论】:
-
我不这么认为,因为我已经说过它在开发服务器上也不起作用
标签: c# asp.net asp.net-mvc asp.net-mvc-3 razor