2016-06-21 95 views
1

我已經嘗試了以下內容 - 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中

filters.Add(new TimeOutFilter()); 

二手[TimeOutFilter]屬性來裝飾位指示

2)添加AsyncTimeout屬性來裝飾控制器/動作如下:

[AsyncTimeout(10)] 

3)將executionTimeout設置爲web.config文件中的值。

<httpRuntime targetFramework="4.5" maxRequestLength="10240" executionTimeout="10" /> 

4)將HttpContext.Server.ScriptTimeout設置爲控制器中的某個值。

HttpContext.Server.ScriptTimeout = 10; 

使用點1中的步驟,我可以根據請求超時將用戶重定向到登錄屏幕。但這不是我正在尋找的。

我正在尋找當請求超時發生時獲取或觸發異常。

有人請讓我知道,如果有什麼辦法,我們可以做到這一點?

回答

相關問題