<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 設定的運作方式與 requestQueueLimitprocessModel 元素的 屬性相同,這會在 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>  

另請參閱