Share via


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 = "string"
   executionTimeout = "number" 
   maxQueryStringLength = "number"
   maxRequestLength = "number" 
   maxUrlLength = "number"
   maxWaitChangeNotification = "number" 
   minFreeThreads = "number" 
   minLocalRequestFreeThreads = "number" 
   relaxedUrlToFileSystemMapping = "[True|False]"
   requestLengthDiskThreshold = "number" 
   requestPathInvalidCharacters = "string"
   requestValidationMode = "[2.0|4.0]"
   requestValidationType = "string"
   requireRootedSaveAsPath = "[True|False]"
   sendCacheControlHeader = "[True|False]" 
   shutdownTimeout = "number"
   targetFramework = "number"   useFullyQualifiedRedirectUrl = "[True|False]" 
   waitChangeNotification = "number" />

屬性和項目

下列章節會說明屬性、子項目和父項目。

屬性

屬性

描述

apartmentThreading

選擇性 Boolean 屬性。

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

預設值為 False。

appRequestQueueLimit

選擇性 Int32 屬性。

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

預設值為 5000。

delayNotificationTimeout

選擇性 Int32 屬性。

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

預設為 5 秒。

encoderType

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

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

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

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 版本。 實際執行站台不需要它,可以將其停用。

NoteNote
這個屬性在 .NET Framework 1.0 中無法使用。

預設為 True。

executionTimeout

選擇性 Int32 屬性。

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

這個逾時期限在屬性上的偵錯時,才會套用compilation項目是False 。 因此,如果debug屬性是True ,您並沒有將這個屬性設定為較大的值,以避免應用程式關閉,而您正在偵錯。

預設為 110 秒。

maxRequestLength

選擇性 Int32 屬性。

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

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

maxWaitChangeNotification

選擇性 Int32 屬性。

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

預設值為 0。

minFreeThreads

選擇性 Int32 屬性。

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

預設值為 8。

minLocalRequestFreeThreads

選擇性 Int32 屬性。

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

預設值為 4。

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 型別的類別。 在應用程式組態檔,然後即可設定requestValidationType屬性的httpRuntime為自訂型別的完整限定的字串名稱的項目

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

requestLengthDiskThreshold

選擇性 Int32 屬性。

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

預設值為 80 KB。

requireRootedSaveAsPath

選擇性 Boolean 屬性。

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

預設為 True。

sendCacheControlHeader

選擇性 Boolean 屬性。

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

預設為 True。

shutdownTimeout

選擇性 Int32 屬性。

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

預設為 90 秒。

targetFramework

選擇性 String 屬性。

指定表示將使用哪一個通用語言執行階段 (CLR) 的特定版本的 framework 版本號碼。 如果省略此屬性,則會將目標架構設定為 4.0。

預設值為 Null。

useFullyQualifiedRedirectUrl

選擇性 Boolean 屬性。

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

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

預設值為 False。

waitChangeNotification

選擇性 Int32 屬性。

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

預設值為 0 秒。

maxQueryStringLength

選擇性 Int32 屬性。

查詢字串的最大長度,以字元數為單位。 預設值為 2048。

MaxQueryStringLength 屬性的値可以是零或大於零的任何整數。 如果查詢字串的長度超過大小限制,而 ASP。NET 傳回HTTP 400 (錯誤要求) 狀態碼。

NoteNote
極小的值可能讓網站變得不穩定。
NoteNote
另外還有一個 [IIS] 設定,控制查詢字串的長度。請參閱maxQueryString屬性上要求限制 <requestLimits>

maxUrlLength

選擇性 Int32 屬性。

URL 中的字元數最大長度。 預設值為 260。

MaxUrlLength 屬性的値可以是零或大於零的任何整數。

如果要求 URL (也就是 Path 屬性的值) 的長度超過設定的大小限制,ASP.NET 就會傳回 HTTP 400 (錯誤要求) 狀態碼。

NoteNote
極小的值可能讓網站變得不穩定。另外還有一個 [IIS] 設定,控制查詢字串的長度。請參閱maxQueryString屬性上要求限制 <requestLimits>

relaxedUrlToFileSystemMapping

選擇性 Boolean 屬性。

指出是否在 HTTP 要求的 URL 都必須是有效的 Windows 檔案路徑。

RelaxedUrlToFileSystemMapping 屬性會判斷如何驗證內送 HTTP 要求中的 URL。 如果這個屬性為 false,便會使用判斷 Windows 檔案系統路徑是否有效的相同規則,來對 URL 進行驗證。

requestPathInvalidCharacters

選擇性 String 屬性。

在要求路徑中無效的字元以逗號分隔清單。 下列清單包含一組預設的無效字元:

<,>,*,%,&,:,\

子項目

無。

父項目

項目

描述

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 
   apartmentThreading="false"
   appRequestQueueLimit="5000"
   delayNotificationTimeout="5"
   enable="true"
   enableHeaderChecking="true"
   enableKernelOutputCache="true"
   enableVersionHeader="true"
   encoderType = "System.Web.Util.HttpEncoder"
   executionTimeout="110"
   maxQueryStringLength = "2048"
   maxRequestLength="4096"
   maxUrlLength = "260"
   maxWaitChangeNotification="0"
   minFreeThreads="8"
   minLocalRequestFreeThreads="4"
   relaxedUrlToFileSystemMapping = "False"
   requestLengthDiskThreshold="80"
   requestPathInvalidCharacters = "<,>,*,%,&,:,\"
   requestValidationMode = "4.0"
   requestValidationType = "System.Web.Util.RequestValidator"
   requireRootedSaveAsPath="true"
   sendCacheControlHeader="true"
   shutdownTimeout="90"
   useFullyQualifiedRedirectUrl="false"
   waitChangeNotification="0" />

範例

下列範例將示範如何指定 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 或更新版本

請參閱

參考

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

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

System.Configuration

HttpRuntimeSection

HttpRuntime

概念

Securing Configuration

其他資源

一般組態設定 (ASP.NET)

Configuring ASP.NET Applications