我有一个使用Elmah MVC的ASP.NET C#MVC站点。
我注意到在我的开发机器上没有记录的实时服务器上记录了一些异常,尽管web.configs是相同的。
我引发了一个自定义异常,并在我的controller.onexception方法中设置了filterContext.ExceptionHandled = true。
在我的本地PC上,这些异常不会被记录,而是记录在我的服务器上!
我想让他们不在服务器上登录,或者只是弄清楚为什么2台电脑的行为不一样。
这是我的OnException方法:
[NonAction]
protected override void OnException(ExceptionContext filterContext)
{
ActionResult result = null;
Exception ex = filterContext.Exception;
UCSException ex2 = ex as UCSException;
if (ex2 != null)
{
switch (ex2.ErrorCode){
case UCSException.ErrorCodes.CompanyNotValid:
result = RedirectToAction("index", globals.ControllerNameCompany);
break;
//etc... (snipped for brevity)
}
}
if (result != null)
{
filterContext.ExceptionHandled = true;
filterContext.Result = result;
}
base.OnException(filterContext);
}
编辑: 当我将filterContext.ExceptionHandled保留为False时,我得到500错误页面并在本地记录异常。这就是我期望filterContext.ExceptionHandled的行为,但是实时服务器以任何一种方式记录异常。