下午好,
在我的项目中安装了elmah框架来记录异常。在localhost上它工作正常,但是当我将它部署到生产时,它会停止记录空引用异常。记录所有其他异常(或者我没有找到下一个未记录的异常)。 我已经设置了登录SqlServer。
我无法找出问题所在,有人可以给我一些建议吗? (我怎么说它记录了我解雇的所有例外情况,但只有这一个从未被捕获过)
谢谢
答案 0 :(得分:2)
好吧,Thomas Ardal回答说得对。
问题出在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());
之后它开始记录一些例外但不是全部。解决方法是我删除if条件并捕获所有内容。因此,如果有人会有类似的问题,请确保,问题将出现在过滤器中......