close

Elmah 取自Error Logging Modules and Handlers縮寫,ASP.NET錯誤記錄模組,它可被動態的加入ASP.NET web應用程式,而不需重新編譯或發行,就能在ASP.NET發生例外錯誤(Exception)時,將錯誤訊息、程式碼位置、Query String、Cookie、Client IP、登入身分... 等等偵錯資訊鉅細靡遺地保存下來,並且還提供了網頁查詢介面,可直接透過網站調閱每一則錯誤的細節。以下藉由圖文說明安裝步驟

安裝步驟:
步驟1(安裝ELMAH)
1.開啟NuGet Packages Manager,於NuGet Packages Manager中去輸入ELMAH查詢相關套件。
2.將ELMAH項目安裝,如果是MVC專案Elmah.MVC裝起來,如果需要產XML的Log就裝ELMAH on XML Log,所以在此建議將
ELMAH、ELMAH Core Library(no config)、ELMAH.MVC、ELMAH on XML Log四個裝起來。
3.此時會選擇安裝的Projects只要選擇Web的專案就好。
4.安裝完ELMAH之後,自動會在Web.config的Section增加,此時ELMAH安裝設定完成。

Elmah1  

Elmah2    

Elmah3  

Elmah4  

※安裝完成後,看看方案總管,增加了「~/App_Data/Elmah.Errors」「~/Areas/Admin/」

※在此注意因為裝了ELMAH on XML Log所在在web.config多了<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />在這邊我是用SQL去記錄事件所以將這段註解 

Elmah5  

Elmah6  

步驟2(安裝資料庫設定)

1.      先建立一個Elmah資料庫

2.      將前往elmah官網下載ELMAH-1.2-db-SQLServer.sql,並且執行

3.   設定資料庫連線

Elmah7  

Elmah8  

 

※ELMAH預設會讓所有人都可以看到ELMAH紀錄,由於錯誤紀錄記載了很多資訊,因此對網路安全有很大的威脅。

可透過<security allowRemoteAccess="0" />限定本機查詢

Elmah8  

補充

設定限定非匿名使用者或特定使用者才能存取,Web.Config修改如下

<location path="elmah.axd">

    <system.web>

      <authorization>

        <allow roles="Admin"/>

        <deny users="*"/>

      </authorization>

    </system.web>

  </location>

可參考http://kevintsengtw.blogspot.com/2011/10/aspnet-mvc-elmah-2.html

參考文獻

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

http://kevintsengtw.blogspot.com/2011/10/aspnet-mvc-elmah-1.html

http://kevintsengtw.blogspot.com/2011/10/aspnet-mvc-elmah-2.html

http://demo.tc/Post/606

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 LonChang 的頭像
    LonChang

    LonChang的部落格

    LonChang 發表在 痞客邦 留言(0) 人氣()