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 (含) 以後版本時才有作用。 輸出快取的組態和要求的類型會決定是否可以快取內容。 若要快取回應,則必須符合下列準則:
預設為 True。 |
enableVersionHeader |
選擇性 Boolean 屬性。 指定 ASP.NET 是否應該輸出版本標頭。 Microsoft Visual Studio 2005 會使用這個屬性判斷使用中的 ASP.NET 版本。 實際執行站台不需要它,可以將其停用。
Note
這個屬性在 .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,則所有非完整路徑的重新導向會自動轉換為完整路徑形式。
Note
如果這個屬性設定為 False,則有些瀏覽器可能會在載入無 Cookie 工作階段的網頁時碰到問題。
預設值為 False。 |
waitChangeNotification |
選擇性 Int32 屬性。 指定在重新啟動 AppDomain 之前,等待其他檔案變更通知的時間 (以秒為單位)。 請設定這個屬性的數值,使其大於更新兩個檔案複製變更告知之間的時間。 檔案變更通知根據這個屬性的值和 maxWaitChangeNotification 屬性進行組合。 預設值為 0 秒。 |
maxQueryStringLength |
選擇性 Int32 屬性。 查詢字串的最大長度,以字元數為單位。 預設值為 2048。 MaxQueryStringLength 屬性的値可以是零或大於零的任何整數。 如果查詢字串的長度超過大小限制,而 ASP。NET 傳回HTTP 400 (錯誤要求) 狀態碼。
Note
極小的值可能讓網站變得不穩定。
Note
另外還有一個 [IIS] 設定,控制查詢字串的長度。請參閱maxQueryString屬性上要求限制 <requestLimits>。
|
maxUrlLength |
選擇性 Int32 屬性。 URL 中的字元數最大長度。 預設值為 260。 MaxUrlLength 屬性的値可以是零或大於零的任何整數。 如果要求 URL (也就是 Path 屬性的值) 的長度超過設定的大小限制,ASP.NET 就會傳回 HTTP 400 (錯誤要求) 狀態碼。
Note
極小的值可能讓網站變得不穩定。另外還有一個 [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>
項目資訊
組態區段處理常式 |
|
組態成員 |
|
可設定的位置 |
Machine.config 根層次的 Web.config 應用程式層級的 Web.config 虛擬或實體目錄層級的 Web.config |
需求 |
Microsoft Internet Information Services (IIS) 5.0 或更新版本 |
請參閱
參考
system.web 項目 (ASP.NET 設定結構描述)