2014-11-24 108 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()); 

之后,它开始记录一些例外,但不是全部。解决方案是,我删除,如果条件和抓住一切。因此,如果任何人有类似的问题,一定要注意,这个问题将在过滤器的某个地方...