[ASP.NET] 使用 ELMAH 捕捉 Exception 記錄

[ASP.NET] 使用 ELMAH 捕捉 Exception 記錄

ELMAH 不需要改變現有的程式架構便能捕捉到例外,並且記錄到資料庫(支援相當多的資料庫),這個工具真的很優秀

在此我使用 Web Form 來演練,開一個空的 Web Form 專案,加入default.aspx

從 Nuget 安裝 ELMAH

安裝資料庫

測試 elmah.axd

elmah.axd 安全設定


從 Nuget 安裝 ELMAH

image

 

安裝資料庫

從 Nuget 安裝 ELMAH MS SQL

image

 

從App_Readme資料夾複製 Elmah.SqlServer.sql 內容

image

 

貼到 SSMS 裡面執行

image

 

修改連線字串

image

 

測試 elmah.axd

編寫一段程式碼並拋出例外

image

 

按下F5會出現此錯誤頁面

image

PS.應用程式發佈到正式環境的時候記得把錯誤黃頁關閉 <customErrors mode="On"></customErrors>

 

瀏覽 elmah.axd,便可看到例外訊息已經被記錄下來並透過 UI 呈現 http://localhost:1465/elmah.axd,如下圖:

image

 

例外也寫到資料庫裡面了

image

 

elmah.axd 安全設定

如果不保護它,可以在 google 上搜尋到,很容易就變成攻擊目標,這很可怕的請參考以下,該文作者在後面也提出保護方式

http://www.cnblogs.com/TomXu/archive/2012/01/13/2321456.html

 

也可以參考黑大的研究

http://blog.darkthread.net/post-2011-03-10-elmah-axd-security.aspx

1.加強路徑安全

2.限定特定用戶讀取 elmah.axd(下例為Windows Authentiaction)

image

 

這時路徑就要改成

http://localhost:1465/debugger/elmah_blah.axd

image

 

 


本文出自:http://www.dotblogs.com.tw/yc421206/archive/2014/05/22/145209.aspx

延伸閱讀:

http://kevintsengtw.blogspot.tw/2013/09/aspnet-mvc-elmahmvc-211-windows-azure.html#.U32bkii_5wk

http://demo.tc/Post/606

http://blog.darkthread.net/post-2011-03-10-elmah-axd-security.aspx

http://huan-lin.blogspot.com/2013/02/something-about-elmah-error-logging.html

http://joel.net/logging-errors-with-elmah-in-asp.net-mvc-3--part-4--handleerrorattribute

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo