私は今まで以下を試しました。 1)タイムアウトを処理するためのカスタム属性が追加されました。ASP.NET MVC5アプリケーションでリクエストタイムアウトを処理する方法は?
public class TimeOutFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
System.Web.HttpContext.Current.GetType().GetField("_timeoutState", System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.NonPublic).SetValue(System.Web.HttpContext.Current, 1);
base.OnActionExecuting(filterContext);
}
}
Global.asaxの
contoller2を飾るために[TimeOutFilter]属性を使用し
filters.Add(new TimeOutFilter());
に後に添加)を次のようにコントローラ/アクションを飾るためにAsyncTimeout属性が追加されました:
を[AsyncTimeout(10)]
3)executionTimeoutをweb.configファイルの値に設定します。
<httpRuntime targetFramework="4.5" maxRequestLength="10240" executionTimeout="10" />
4)HttpContext.Server.ScriptTimeoutをコントローラの値に設定します。
HttpContext.Server.ScriptTimeout = 10;
ポイント1の手順を使用して、リクエストタイムアウト時にユーザーをログイン画面にリダイレクトすることができました。しかし、これは私が探しているものではありません。
リクエストのタイムアウトが発生したときに例外を取得またはトリガーしたいのですが、
これを行う方法があれば教えてください。