2011-10-12 36 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記錄處理的異常? –

相關問題