Thinkin Markdown

HttpRuntime ExecutionTimeout & IIS Site ConnectionTimeout 差異

深入了解 ExecutionTimeout & ConnectionTimeout

發佈時間 2020-01-11
閱讀時間 3 分鐘
主題 IIS
標籤
ExecutionTimeoutConnectionTimeout
HttpRuntime ExecutionTimeout & IIS Site ConnectionTimeout 差異

前言

最近在公司協助解決問題時,碰到一個問題描述為「前端發 Request 1分鐘後就會回傳失敗」且是在客戶環境,聽到的狀況是 Response 回傳 Http status 為 504,所以就有初步懷疑可能是客戶網路有什麼限制···

💭 504 Gateway Timeout Error

不過當然身為工程師,還是得要窮盡可能去嘗試看看自己是否有哪邊沒有做到位,於是乎我先把遇到的狀況同步給對方 IT 幫忙看看是否能排除問題···

回到主題,我一開始還真的不清楚 executionTimeout 和 connectionTimeout 的區別是什麼 Σ(゚Д゚;≡;゚д゚) 查了一些資料才比較明白···

👉 ExecutionTimeout

web.config > system.web > httpRuntime

executionTimeout-and-connectionTimeout-1

web.config

executionTimeout-and-connectionTimeout-2

Microsoft Docs

有幾點可以特別注意:

  1. 長度限制為有號 32 位元。
  2. 可以決定 Server 端針對這一 Request 最大能處理的時間。
  3. Compilation 元素內的 debug 屬性會影響其生效。
  4. 因 .NET Framework 版本預設值會有差異。

實際小演練

debug = true

executionTimeout-and-connectionTimeout-3

web.config

開發環境我不希望發生有執行逾時(Execution Timeout)的情況發生,所以 Compilation 元素內的 debug 屬性設為 True。

debug = false

executionTimeout-and-connectionTimeout-4

web.config

測試環境我希望發生有執行逾時(Execution Timeout)的情況發生,所以 Compilation 元素內的 debug 屬性設為 False。

executionTimeout-and-connectionTimeout-5

Logged message

如果這個要求(Request)在 Server 超過 executionTimeout 所設置的時間,則會回傳 Http status 500 給前端。

參考來源

💭 httpRuntime Element (ASP.NET Settings Schema)

💭 compilation Element (ASP.NET Settings Schema)

💭 ASP.NET MVC 開發心得分享 (22):關於 executionTimeout

👉 ConnectionTimeout

IIS 網站(Site) > 進階設定(Advanced Settings) > 連線限制(Connection Limits)

executionTimeout-and-connectionTimeout-6

IIS

executionTimeout-and-connectionTimeout-7

Microsoft Docs

有幾點可以特別注意:

  1. 可以決定 client 與 server 建立的 TCP 連線在中斷前可保持非使用中的時間。(簡單說就是這條被建立的連線在非活耀狀態下可以持續的時間,過後則關閉連線)
  2. 描述三種狀況會被視為非活耀連線狀態
  3. 預設為 120 秒(2 分鐘)

參考來源

💭 Default Limits for Web Sites <limits>

💭 [IIS][ASP.net] 連線逾時,Session Timeout的設定

💭 HTTP keep-alive連線

結尾

感謝各位花時間看完此篇小文,如果本文中有描述錯誤,還請各位指教。

希望大家對於 executionTimeout 及 connectionTimeout 的定義可以做出區別並有初步認識,兩者並不是指同一件事情哦···

謎之聲:這個不是看英文就知道了(´・_・`)?

我:···

如果這篇文章對你有幫助,歡迎分享給更多人!

贊助支持

如果你喜歡我們的文章,或是這些內容對你有幫助,歡迎透過以下平台請我們喝杯咖啡,支持我們持續創作!

Ko-fi

作者

NE

Neil Tsai

樂於分享所見所聞所覺所知的全端工程師

留言功能需要 Cookie 授權

為了載入留言功能,我們需要您同意使用「功能性 Cookie」。您可以隨時在設定中調整。

免責聲明

本網站對於任何使用或引用本網站網頁資料引致之損失或損害,概不負責。本網站亦有權隨時刪除、暫停或編輯本網站所登載之各項資料,以維護本網站之權益。除法律有強制規定外,在任何情況下,本網站對於 (1) 使用或無法使用本網站之各項服務;(2) 經由本網站取得訊息或進行交易;(3) 第三人在本網站上之陳述或作為;以及 (4) 其他與本網站服務有關之事項所致生之任何直接、間接、附帶、特別、懲罰性或衍生性損害,一概不負賠償責任。

CopyRight © 2026 Thinkin Markdown