MVC3プロジェクトに長い間ポーリングコントローラーがあります。タイムアウトは30秒に設定されています。すべてのエラーのログを処理するHandleErrorAttribute実装があります。
timoutはTimeoutExceptionをスローするため、これらがログに表示されることを意味します。
HandleErrorAttributeクラスがエラーを取得する前にこのエラーをインターセプトし、500エラーページの代わりにjsonオブジェクトを返す必要があります。このための最良のアプローチは何ですか?
私はこれをしました、そしてそれは働きます
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);
}
}
最善のアプローチ?