咱們作web服務器端開發時,常常會遇到一個需求場景,由於某些耗時處理形成頁面的響應處理時間超長,技術角度就想可否給頁面處理程序一個指定的超時時間,服務端處理程序執行時間超過這個指定的超時時間則中斷處理,直接返回響應,以防止服務器端宿主的吞吐隊列堆積,形成全站癱瘓。
asp.net中,有這麼一個方便的東西,他就是ExecutionTimeout 。web
相關背景
ExecutionTimeout 屬性指示在請求被 ASP.NET 自動關閉前容許執行的最大秒數。 默認值爲 110 秒。 只有當 <compilation> 元素中的調試特性設置爲 false 時,此超時屬性才適用。服務器
若是超時過時,則引起異常。 您能夠在事件日誌的 Application 文件夾中記錄相關的信息。 經過在<healthMonitoring> 配置元素中啓用應用程序情況監視來執行此操做。框架
經測試驗證發現:
ASP.NET Webform項目的中ExecutionTimeout 生效。
ASP.NET MVC3中項目中中ExecutionTimeout 不生效。
MVC項目讓ExecutionTimeout 生效的解決方案
web.config
目前只在最終頁請求處理controller裏落地,將來能夠放到basecontroller裏
相關資料