【发布时间】:2012-03-07 11:23:24
【问题描述】:
我的 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);
}
}
最佳方法?
【问题讨论】:
-
无法让它工作。无法解析符号“AsJson”。你到底是在哪里找到这种方法的?我正在使用 C# 4.5
-
啊,它是一个辅助方法,它只是吐出一个 JsonResult
标签: asp.net-mvc-3 timeoutexception asynccontroller