ASP.NET MVC 5和Elmah的自定义错误页面

时间:2014-03-31 14:55:35

标签: asp.net-mvc-5 elmah

我正在尝试在asp mvc 5中制作工作自定义错误页面,但是出于某些奇怪的原因,我现在正在测试我的页面,从elmah我正在记录两个错误(我正在测试的真正错误和与错误页面相关的错误实测值:

  

视图'错误'或者找不到它的主人,或者没有视图引擎支持搜索到的位置。搜索了以下位置:   〜/查看/ HotTowel / Error.aspx   〜/查看/ HotTowel / Error.ascx   〜/查看/共享/ Error.aspx   〜/查看/共享/ Error.ascx   〜/查看/ HotTowel / Error.cshtml   〜/查看/ HotTowel / Error.vbhtml   〜/查看/共享/ Error.cshtml   〜/查看/共享/ Error.vbhtml

我正在研究这个网址http://doingthedishes.com/2011/09/10/custom-errors-mvc-3-elmah.html,其中作者有同样的问题,但是使用asp.net mvc 3.在阅读之后,我尝试删除对HandleErrorAttribute的调用:

  public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        //filters.Add(new HandleErrorAttribute());
    }
}

但问题仍然存在:我可以看到我的自定义页面,但asp.net mvc抛出两个例外。 有什么帮助吗?

解决方案是重写一个派生自HandleErrorAttribute的类吗? 喜欢这篇文章:keep getting The view "Error" not found when using Elmah and asp.net mvc 4

2 个答案:

答案 0 :(得分:8)

您可以从ELMAH.MVC 2.0.2 is out执行以下操作:

  1. disableHandleErrorFilter设为true

    <add key="elmah.mvc.disableHandleErrorFilter" value="true" />
    
  2. filters.Add(new HandleErrorAttribute());课程中删除FilterConfig

    public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
          // filters.Add(new HandleErrorAttribute()); // <-- comment out
        }
    }
    

答案 1 :(得分:1)

这里有一个可能的解决方案。我通常会覆盖基本控制器类中的itemid方法。 OnException检查web.config中的filterContext.HttpContext.IsCustomErrorEnabled<customErrors>变量派生自web.config中的设置。

showVerboseErrors