2014-11-24 129 views
0

下午好,Elmah不記錄NullReference異常

在我的項目中安裝了elmah框架來記錄異常。在本地主機上它工作正常,但是當我將它部署到生產環境時,它停止記錄空引用異常。記錄所有其他異常(或者我沒有發現下一個沒有記錄的異常)。 我已經設置了登錄到SqlServer。

我找不出什麼毛病,有人可以給我建議嗎? (我如何說loggs所有異常我解僱,但只有這一個是從來沒有抓到)

謝謝

+1

聽起來像你可以忽略NullReferenceExceptions。你能分享你的配置嗎? – ThomasArdal 2014-11-25 09:47:08

+0

@ThomasArdal你需要什麼配置部分?那裏我沒有任何過濾器。以及我怎麼說,在本地主機上它工作正常(空引用異常被捕獲 - 在0號下,但它被捕獲) – Ademar 2014-11-25 16:54:30

+0

我在思考你的ELMAH配置web.config。但它確實聽起來很奇怪! – ThomasArdal 2014-11-26 20:25:43

回答

2

嗯,托馬斯奧達爾回答正確。

問題出在FilterConfig.cs文件中。因爲在默認的設置它不希望任何記錄500錯誤的,危險的請求,空引用異常等,我已經加入此行:

public class ElmahHandleErrorAttribute : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     if(filterContext.Exception is HttpRequestValidationException) 
     { 
      ErrorLog.GetDefault(HttpContext.Current).Log(new Error(filterContext.Exception)); 
     } 
    } 
} 

,並加入這行來RegisterGlobalFilters方法放在首位。

filters.Add(new ElmahHandleErrorAttribute()); 

之後,它開始記錄一些例外,但不是全部。解決方案是,我刪除,如果條件和抓住一切。因此,如果任何人有類似的問題,一定要注意,這個問題將在過濾器的某個地方...