[ASP.NET] 使用 ELMAH 捕捉 Exception 記錄
ELMAH 不需要改變現有的程式架構便能捕捉到例外,並且記錄到資料庫(支援相當多的資料庫),這個工具真的很優秀
在此我使用 Web Form 來演練,開一個空的 Web Form 專案,加入default.aspx
從 Nuget 安裝 ELMAH MS SQL
從App_Readme資料夾複製 Elmah.SqlServer.sql 內容
貼到 SSMS 裡面執行
修改連線字串
編寫一段程式碼並拋出例外
按下F5會出現此錯誤頁面
PS.應用程式發佈到正式環境的時候記得把錯誤黃頁關閉 <customErrors mode="On"></customErrors>
瀏覽 elmah.axd,便可看到例外訊息已經被記錄下來並透過 UI 呈現 http://localhost:1465/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)
這時路徑就要改成
本文出自: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://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