MVC3プロジェクトに長時間ポーリングコントローラがあります。タイムアウトは30秒に設定されています。すべてのエラーのロギングを処理するHandleErrorAttribute実装があります。AsyncControllerでタイムアウトを処理する最良の方法
タイムアウトは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);
}
}
ベストなアプローチを動作しますか?
これを機能させることはできません。 シンボル "AsJson"を解決できません。あなたはその方法をどこで見つけましたか?私はC#4.5を使用しています – Nick
ああ、そのヘルパーメソッドは、ちょうどJsonResultを吐き出す – Anders