httpRuntime 項目 (ASP.NET 設定結構描述)

設定 ASP.NET HTTP 執行階段設定,這些設定會決定如何處理 ASP.NET 應用程式的要求。

<httpRuntime
   apartmentThreading = "[True|False]"
   appRequestQueueLimit = "number"
   delayNotificationTimeout = "number"
   enable = "[True|False]" 
   enableHeaderChecking = "[True|False]" 
   enableKernelOutputCache = "[True|False]" 
   enableVersionHeader = "[True|False]" 
   encoderType = "name"
   executionTimeout = "number"   
   maxRequestLength = "number" 
   maxWaitChangeNotification = "number" 
   minFreeThreads = "number" 
   minLocalRequestFreeThreads = "number" 
   requestLengthDiskThreshold = "number" 
   requestValidationMode = "[2.0|4.0]"
   requestValidationType = "name"
   requireRootedSaveAsPath = "[True|False]"
   sendCacheControlHeader = "[True|False]" 
   shutdownTimeout = "number"
   useFullyQualifiedRedirectUrl = "[True|False]" 
   waitChangeNotification = "number" 
/>

屬性和項目

下列各節將說明屬性、子項目和父項目。

屬性

屬性

描述

apartmentThreading

選擇性 Boolean 屬性。

啟用傳統 ASP 相容性的 apartment 執行緒。

預設值為 False。

appRequestQueueLimit

選擇性 Int32 屬性。

指定 ASP.NET 為應用程式佇列要求的最大數目。 當可用的執行緒不足以處理要求時,這些要求就會排入佇列。 當佇列超過這個屬性中指定的限制時,會以「503 - 伺服器太忙碌」錯誤而拒絕外來的要求。

預設為 5000。 在 .NET Framework 1.0 和 1.1 版中,預設值為 100 個要求。

delayNotificationTimeout

選擇性 Int32 屬性。

指定延遲告知的逾時,以秒為單位。

預設為 5。

enable

選擇性 Boolean 屬性。

指定是否在目前和子節點層級啟用應用程式定義域 (AppDomain),以接受連入要求。 如果為 False,則應用程式會關閉。

預設為 True。

enableHeaderChecking

選擇性 Boolean 屬性。

指定 ASP.NET 是否應該檢查要求標頭,以查看是否存在潛在的資料隱碼攻擊。 如果偵測到攻擊,ASP.NET 會回應錯誤。

預設為 True。

enableKernelOutputCache

選擇性 Boolean 屬性。

指定是否啟用輸出快取。 這個屬性只有在已安裝 Microsoft Internet Information Services (IIS) 6.0 (含) 以後版本時才有作用。 輸出快取的組態和要求的類型會決定是否可以快取內容。

若要快取回應,則必須符合下列準則:

  • 必須藉由頁面指示詞或使用快取 API 以明確啟用快取。

  • 快取必須有到期原則,讓核心 (Kernel) 知道什麼時候應該捨棄回應。

  • 快取沒有任何變數標頭或參數。

  • 驗證 (Authentication) 是不需要的。

預設為 True。

enableVersionHeader

選擇性 Boolean 屬性。

指定 ASP.NET 是否應該輸出版本標頭。 Microsoft Visual Studio 2005 會使用這個屬性判斷使用中的 ASP.NET 版本。 實際執行站台不需要它,可以將其停用。

注意事項注意事項
這個屬性在 .NET Framework 1.0 中無法使用。

預設為 True。

encoderType

取得或設定可用於處理 HTML 及 URL 編碼之自訂型別的名稱。

ASP.NET 使用 HttpEncoder 型別做為 HTML 和 URL 編碼工作的預設處理常式。 若要自訂編碼行為,您可以建立繼承自 HttpEncoder 型別的類別。 在應用程式的組態檔中,您接著將 httpRuntime 項目的 EncoderType 屬性設為自訂型別的完整字串名稱。

這個屬性是 .NET Framework 4 版中新增的屬性。

executionTimeout

選擇性 Int32 屬性。

指定由 ASP.NET 自動關閉之前允許執行要求的最大秒數。

這個逾時只在 compilation 項目中的偵錯屬性為 False 時才適用。 如果 debug 屬性為 True,為了避免在偵錯期間關閉應用程式,請不要將這個逾時設定為大的數值。

預設為 110。 在 .NET Framework 1.0 和 1.1 中,預設為 90 秒。

maxRequestLength

選擇性 Int32 屬性。

指定輸入資料流緩衝臨界值的限制,以 KB 為單位。 這個限制可以用來防止服務拒絕攻擊,例如由使用者將大型檔案回傳至伺服器所引起的攻擊。

預設為 4096。 如果超出臨界值,則會擲回 ConfigurationErrorsException 例外狀況。

maxWaitChangeNotification

選擇性 Int32 屬性。

指定從首次檔案變更通知開始,到重新啟動新要求的 AppDomain 之前,等待的最大秒數。 請設定這個屬性的數值,使其大於完成任何檔案複製處理序所需的時間長度。 檔案變更通知根據這個屬性的值和 waitChangeNotification 屬性進行組合。

預設為 0。

minFreeThreads

選擇性 Int32 屬性。

指定允許執行新要求的最低可用執行緒個數。 ASP.NET 會保持指定數量的執行緒,供需要額外的執行緒來完成處理作業的要求使用。

預設為 8。

minLocalRequestFreeThreads

選擇性 Int32 屬性。

指定使 ASP.NET 持續可用以允許執行新的本機要求的最低可用執行緒個數。 指定的執行緒個數保留供來自本機主機的要求使用,免得有些要求在處理期間發出子要求至本機主機。 如此有助於避免遞迴重複進入 Web 伺服器的可能死結。

預設為 4。

requestLengthDiskThreshold

選擇性 Int32 屬性。

指定輸入資料流緩衝臨界值的限制,以 KB 為單位。 這個值不應超過 maxRequestLength 屬性。

預設為 80。

requestValidationMode

選擇性 Int32 屬性。

取得或設定版本號碼,這個版本號碼表示要使用哪一種 ASP.NET 版本特定驗證方法。

不會驗證您指派給這個屬性的值以比對特定版本的 ASP.NET。 小於 4.0 的任何數值 (例如3.7、2.9 或 2.0),都會解譯為 2.0。 大於 4.0 任何數字,都會解譯為 4.0。

預設值為 4.0。

requestValidationType

選擇性 String 屬性。

取得或設定用於驗證 HTTP 要求的型別名稱。

若要自訂 ASP.NET 要求驗證行為,您可以建立繼承自 RequestValidator 型別的類別。 在應用程式的組態檔中,您接著將 httpRuntime 項目的 requestValidationType 屬性設為自訂型別的完整字串名稱。

預設值為 ASP.NET 用於驗證之 RequestValidator 型別的完整名稱

requireRootedSaveAsPath

選擇性 Boolean 屬性。

指定 SaveAs 方法中的 filename 參數是否必須為絕對路徑。 ASP.NET 處理序必須具有在指定位置建立檔案的使用權限。

預設為 True。

sendCacheControlHeader

選擇性 Boolean 屬性。

指定是否傳送快取控制項標頭,預設設為 Private。 如果為 True,則會停用用戶端快取。

預設為 True。

shutdownTimeout

選擇性 Int32 屬性。

指定背景工作處理序關閉所允許的秒數。 當逾時超過時,ASP.NET 會關閉背景工作處理序。

預設為 90 秒。

useFullyQualifiedRedirectUrl

選擇性 Boolean 屬性。

指定用戶端重新導向是否為完整路徑 (使用 "https://server/path" 形式,有些行動控制項必須如此),或相對重新導向是否改為傳送至用戶端。 如果為 True,則所有非完整路徑的重新導向會自動轉換為完整路徑形式。

注意事項注意事項
如果這個屬性設定為 False,則有些瀏覽器可能會在載入無 Cookie 工作階段的網頁時碰到問題。

預設值為 False。

waitChangeNotification

選擇性 Int32 屬性。

指定在重新啟動 AppDomain 之前,等待其他檔案變更通知的時間 (以秒為單位)。 請設定這個屬性的數值,使其大於更新兩個檔案複製變更告知之間的時間。 檔案變更通知根據這個屬性的值和 maxWaitChangeNotification 屬性進行組合。

預設為 0。

子項目

無。

父項目

項目

描述

configuration

Common Language Runtime 和 .NET Framework 應用程式所使用之每一個組態檔中的必要根項目 (Root Element)。

system.web

指定組態檔中 ASP.NET 組態設定的根項目 (Root Element),並包含會設定 ASP.NET Web 應用程式以及控制這些應用程式之行為的組態項目。

備註

httpRuntime 項目會設定 ASP.NET HTTP 執行階段設定,其決定如何處理 ASP.NET 應用程式的要求。 .NET Framework 提供一些不同的執行階段主應用程式,包括 ASP.NET 執行階段主應用程式。 當要求進入時,ASP.NET 會將執行階段設定載入至要處理要求的處理序。 ASP.NET 也會對每一個要在 Web 伺服器上執行的 Web 應用程式建立一個應用程式定義域。

預設的組態

httpRuntime 項目不會明確地在 Machine.config 檔案或根 Web.config 檔案中設定。 不過,下列設定是由系統初始化的預設值。 如果您需要自訂這個區段,必須在您的組態檔內建立這個區段,並只定義需要自訂的屬性。

<httpRuntime 
   executionTimeout="110"
   maxRequestLength="4096"
   requestLengthDiskThreshold="80"
   useFullyQualifiedRedirectUrl="false"
   minFreeThreads="8"
   minLocalRequestFreeThreads="4"
   appRequestQueueLimit="5000"
   enableKernelOutputCache="true"
   enableVersionHeader="true"
   requireRootedSaveAsPath="true"
   enable="true"
   shutdownTimeout="90"
   delayNotificationTimeout="5"
   waitChangeNotification="0"
   maxWaitChangeNotification="0"
   requestPriority="Normal"
   enableHeaderChecking="true"
   sendCacheControlHeader="true"
   apartmentThreading="false"
/>

範例

下列範例將示範如何指定 ASP.NET 應用程式的 HTTP 執行階段參數。

<configuration>
  <system.web>
  <httpRuntime maxRequestLength="4000"
    enable = "True"
    requestLengthDiskThreshold="512
    useFullyQualifiedRedirectUrl="True"
    executionTimeout="45"
    versionHeader="1.1.4128"/>
  </system.web>
</configuration>

項目資訊

組態區段處理常式

HttpRuntimeSection

組態成員

HttpRuntime

可設定的位置

Machine.config

根層次的 Web.config

應用程式層級的 Web.config

虛擬或實體目錄層級的 Web.config

需求

Microsoft Internet Information Services (IIS) 5.0、5.1 或 6.0

.NET Framework 1.0、1.1、2.0

Microsoft Visual Studio 2003 或 Visual Studio 2005

請參閱

參考

system.web 項目 (ASP.NET 設定結構描述)

configuration 項目 (一般設定結構描述)

System.Configuration

HttpRuntimeSection

HttpRuntime

概念

快取 ASP.NET Web 網頁

ASP.NET 組態檔階層架構和繼承

保護 ASP.NET 組態

其他資源

一般組態設定 (ASP.NET)

ASP.NET 組態設定

ASP.NET 網站管理