【问题标题】:Elmah is not triggering when custom errors is enabled启用自定义错误时 Elmah 未触发
【发布时间】:2011-12-05 19:02:40
【问题描述】:

当我禁用我的自定义错误时,Elmah 会记录所有发生的异常并将它们记录到我的数据库中并通过电子邮件发送给我。

但是,第二次我将 web.config 更改为:

<customErrors mode="RemoteOnly" defaultRedirect="~/Home/Error">
</customErrors>

Elmah 停止工作。它不再记录数据库或任何东西的异常,我所看到的只是我正在执行的自定义错误操作。

我怎样才能有自定义错误消息并且仍然有 elmah 日志异常?除了 Elmah,我目前没有进行任何其他异常拦截。

【问题讨论】:

    标签: asp.net asp.net-mvc web-config elmah


    【解决方案1】:

    想通了!

    发生这种情况的原因是因为我在Global.asax 中有filters.Add(new HandleErrorAttribute());。我不知道为什么会这样,但这就是在启用自定义错误时导致失败的原因。删除此行会导致 Elmah 正常处理自定义错误。

    此外,如this answer 所述,告诉 elmah 记录“已处理”错误也有效。

    不过,我并不真正了解这两种选择的全部后果。

    【讨论】:

    • 如果所有错误只有一个“通用”错误页面,则不需要添加 HandleErrorAttribute,因此可以照常删除。
    • 删除标准过滤器似乎会停止 web.config 自定义错误重定向。告诉 Elmah 记录“已处理”错误绝对是更好的解决方案。
    • @owen 你如何告诉 ELMAH 记录处理的异常?
    • 阅读 KallDrexx 的回答
    猜你喜欢
    • 2013-05-18
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多