<applicationPool> 元素 (Web 設定)
指定當 ASP.NET 應用程式在 IIS 7.0 或更新版本上以整合模式執行時,ASP.NET 用來管理全進程行為的組態設定。
重要
只有當 ASP.NET 應用程式裝載于 IIS 7.0 或更新版本時,此元素和它才支援的功能。
<configuration>
<system.web>
<applicationPool>
Syntax
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
屬性和項目
下列章節說明屬性、子元素和父元素。
屬性
屬性 | Description |
---|---|
maxConcurrentRequestsPerCPU |
指定每個 CPU ASP.NET 允許的同時要求數目。 |
maxConcurrentThreadsPerCPU |
指定每個 CPU 的應用程式集區可以同時執行的執行緒數目。 這提供控制 ASP.NET 並行的替代方式,因為您可以限制每個 CPU 可用來處理要求的受控執行緒數目。 根據預設,此設定為 0,這表示 ASP.NET 不會限制每個 CPU 可建立的執行緒數目,不過 CLR 執行緒集區也會限制可建立的執行緒數目。 |
requestQueueLimit |
指定可在單一進程中針對 ASP.NET 排入佇列的要求數目上限。 當兩個或多個 ASP.NET 應用程式在單一應用程式集區中執行時,對應用程式集區中任何應用程式的累計要求集會受限於此設定。 |
子元素
無。
父項目
元素 | 描述 |
---|---|
<system.web> | 包含如何與主應用程式互動 ASP.NET 的相關資訊。 |
備註
當您在整合模式中執行 IIS 7.0 或更新版本時,此元素組合可讓您設定當應用程式裝載于 IIS 應用程式集區時,ASP.NET 管理執行緒和佇列要求的方式。 如果您執行 IIS 6 或是在傳統模式或 ISAPI 模式中執行 IIS 7.0,則會忽略這些設定。
這些 applicationPool
設定會套用至在特定版本.NET Framework上執行的所有應用程式集區。 這些設定包含在 aspnet.config 檔案中。 此檔案的版本適用于 2.0 版和 4.0 版.NET Framework。 (3.0 版和 3.5 版的 .NET Framework會與 2.0.) 版共用aspnet.config檔案
重要
如果您在 Windows 7 上執行 IIS 7.0,則可以為每個應用程式集區設定個別的 aspnet.config 檔案。 這可讓您針對每個應用程式集區量身打造執行緒的效能。
maxConcurrentRequestsPerCPU
針對設定,.NET Framework 4 中的預設設定為 「5000」,實際上會關閉由 ASP.NET 控制的要求節流,除非您實際上每個 CPU 有 5000 個以上的要求。 預設設定會改為取決於 CLR 執行緒集區,以自動管理每個 CPU 的並行存取。 大量使用非同步要求處理,或在網路 I/O 上封鎖許多長時間執行要求的應用程式,將受益于.NET Framework 4 中的增加預設限制。 將 設定 maxConcurrentRequestsPerCPU
為零會關閉使用 Managed 執行緒來處理 ASP.NET 要求。 當應用程式在 IIS 應用程式集區中執行時,要求會保留在 IIS I/O 執行緒上,因此會由 IIS 執行緒設定節流。
此 requestQueueLimit
設定的運作方式與 requestQueueLimit
processModel 元素的 屬性相同,這會在 ASP.NET 應用程式的Web.config檔案中設定。 不過,aspnet.config 檔案中的 requestQueueLimit
設定會覆寫 Web.config 檔案中的 requestQueueLimit
設定。 換句話說,如果有設定這兩個屬性 (預設為 true),則 aspnet.config 檔案中的 requestQueueLimit
設定會優先。
範例
下列範例示範如何在下列情況下,在 aspnet.config 檔案中設定全進程 ASP.NET 行為:
應用程式裝載於 IIS 7.0 應用程式集區中。
IIS 7.0 在整合模式中執行。
應用程式使用 .NET Framework 3.5 SP1 或更新版本。
範例的值是預設值。
<configuration>
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
</system.web>
</configuration>