2011-10-12 68 views
9

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

但是,第二个我我的web.config更改为:

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

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

如何获得自定义错误消息并仍然有elmah日志异常?除了Elmah之外,我目前没有做任何其他异常拦截。

回答

18

想通了!

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

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

虽然我并不真正了解这两种选择的完整结果。

+0

如果您对所有错误只有一个“通用”错误页面,则不需要添加HandleErrorAttribute,因此可以将其删除。 –

+2

删除标准过滤器似乎停止web.config自定义错误重定向。告诉Elmah记录“处理”错误绝对是更好的解决方案。 – Owen

+0

@owen您如何告诉ELMAH记录处理的异常? –

相关问题