【问题标题】:Error handling in MVC using ELMAH在 MVC 中使用 ELMAH 处理错误
【发布时间】:2013-01-03 03:48:18
【问题描述】:

我一直在 MVC4 应用程序中使用 ELMAH。我从 Nuget 下载了 ELMAH,它为我设置了配置。我知道 MVC 的 ELMAH 会捕获控制器中的错误,但是其他地方的错误呢?例如 Application_Start 中的错误?我已经设法log errors with ELMAH in the Application_Error,但无法将其重定向到 /Shared/ 文件夹中的 MVC 4 错误页面。这可能吗?

【问题讨论】:

    标签: c# error-handling asp.net-mvc-4 elmah.mvc


    【解决方案1】:

    是的 - 对于本地环境,除非您将 web.config 设置为 customErrors mode="On" defaultRedirect="Error",然后您需要禁用全局过滤器 HandleError,否则重定向将不起作用。注释掉 RegisterGlobalFilters 中的 HandleErrorAttribute 行。

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

    【讨论】:

    • 为什么我们需要禁用 HandleErrorAttribute?
    • 因为您在 Application_Error 中通过 Elmah 处理错误。
    • 如果你注释掉那一行,你想显示一个自定义错误页面。你会怎么做?。这不是一个好的解决方案。您应该创建一个新的自定义错误过滤器并将其添加到过滤器中,然后您可以将其注释掉。
    • Elmah 已经有一个不需要注册的处理程序。您可以保留它,但您会在 ELMAH 中获得重复的条目。
    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2013-04-03
    • 1970-01-01
    • 2011-12-05
    • 2010-11-21
    相关资源
    最近更新 更多