首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET 頁面執行逾時時間設定完整指南:Machine.config、Web.config、單頁程式碼三層級

     編輯:ASP.NET 基礎

ASP.NET 要求執行逾時預設 110 秒 (1 分 50 秒)。長時間作業 (報表、匯入、同步) 需調整逾時,可在機器層級、網站層級、單一頁面三個層面設定,優先序:單頁 > Web.config > Machine.config。

三層級設定對照

層級設定檔/屬性範圍優先序適用場景
機器層級Machine.config ``該機器所有 ASP.NET 應用程式最低伺服器統一基準、共享主機環境
網站層級Web.config ``單一 Web 應用程式中專案預設逾時、大多數情況在此設定
單一頁面`Server.ScriptTimeout = 秒數`單一 .aspx 頁面執行個體最高特定長耗時頁面 (匯出、報表、批次處理)

1. Machine.config (需系統管理員權限)



  
    
        maxRequestLength="102400"        
        requestLengthDiskThreshold="8192"
        useFullyQualifiedRedirectUrl="false"
        minFreeThreads="8"
        minLocalRequestFreeThreads="4"
        appRequestQueueLimit="5000" />
  

2. Web.config (專案根目錄)


  
    
    
  

3. 單一頁面程式碼 (.aspx.cs)

protected void Page_Load(object sender, EventArgs e)
{
    // 此頁面允許執行 20 分鐘 (1200 秒)
    Server.ScriptTimeout = 1200; 

    // 或在事件處理中動態調整
    if (IsLongRunningOperation)
        Server.ScriptTimeout = 1800;
}

關鍵陷阱:debug="true" 會忽略 ScriptTimeout



相關逾時設定補充

設定位置預設說明
executionTimeouthttpRuntime110sASP.NET 管線處理總逾時
ScriptTimeoutServer.ScriptTimeout110s頁面執行逾時,受 executionTimeout 限制
SqlCommand.CommandTimeoutADO.NET 程式碼30sSQL 查詢/執行逾時,獨立於 ASP.NET
HttpWebRequest.Timeout呼叫外部 API 程式碼100s外部 HTTP 呼叫逾時
Session.TimeoutWeb.config / 程式碼20minSession 閒置逾時
FormsAuthentication.TimeoutWeb.config30min驗證票據逾時
App Pool Idle TimeoutIIS 應用程式池進階設定20min閒置回收,長作業需設 0 或更長

最佳實踐建議

  1. 預設值調大:Web.config 設 `executionTimeout="300"` (5 分鐘) 覆蓋大多數情況。
  2. 特例單頁再調大:匯出/報表頁 `Server.ScriptTimeout = 1800` (30 分鐘)。
  3. 正式環境 debug=false:否則逾時機制失效,長卡住不會拋出例外。
  4. 長作業異步化:超過 2-3 分鐘作業建議改為背景工作 + 輪詢/通知,避免佔用請求執行緒、觸發 AppPool 回收。
  5. 設定上傳限制同步調整:`maxRequestLength` (KB) 與 `executionTimeout` 需配合,大檔上傳需同時設大。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved