我的 MVC3 项目中有很长时间轮询控制器。它的超时设置为 30 秒。我有一个处理所有错误记录的 HandleErrorAttribute 实现。
由于 timout 引发 TimeoutException,这意味着这些将显示在日志中。
我需要在我的 HandleErrorAttribute 类得到它之前拦截这个错误并返回一个 json 对象而不是 500 错误页面。最好的方法是什么?
我这样做了,它有效
public class HandleTimeout : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if(filterContext.Exception is TimeoutException)
{
filterContext.Result = new { Timeout = true }.AsJson();
filterContext.ExceptionHandled = true;
filterContext.HttpContext.Response.StatusCode = 200;
}
base.OnException(filterContext);
}
}
最好的方法?