規範 ASP.NET 用於管理 IIS 7.0 或更新版本中整合模式時,ASP.NET 應用程式管理整個程序的行為的設定。
這很重要
此元素及其支援功能僅在您的 ASP.NET 應用程式架設於 IIS 7.0 或更新版本時有效。
<configuration>
<system.web>
<applicationPool>
語法
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
屬性和項目
下列章節說明屬性、子元素和父元素。
Attributes
| Attribute | Description |
|---|---|
maxConcurrentRequestsPerCPU |
規定每個 CPU 允許 ASP.NET 同時請求次數。 |
maxConcurrentThreadsPerCPU |
規定每個 CPU 在應用程式池中可同時執行多少執行緒。 這提供了另一種控制 ASP.NET 並行性的方式,因為你可以限制每個 CPU 可用來處理請求的管理執行緒數量。 預設設定為 0,表示 ASP.NET 不限制每個 CPU 可建立的執行緒數量,儘管 CLR 執行緒池也會限制可建立的執行緒數量。 |
requestQueueLimit |
指定單一程序中可排隊等待 ASP.NET 的最大請求數量。 當兩個或以上 ASP.NET 應用程式在同一應用程式池中運行時,對該應用池中任一應用程式發出的累積請求集合都會受到此設定的影響。 |
子元素
沒有。
父項目
| 元素 | Description |
|---|---|
| <system.web> | 包含 ASP.NET 如何與主機應用程式互動的資訊。 |
備註
當你以整合模式執行 IIS 7.0 或更新版本時,此元素組合可讓你設定應用程式託管於 IIS 應用池時,ASP.NET 如何管理執行緒與佇列請求。 如果你執行 IIS 6,或是以經典模式或 ISAPI 模式運行 IIS 7.0,這些設定會被忽略。
這些 applicationPool 設定適用於所有在特定 .NET Framework 版本上執行的應用程式池。 設定包含在一個 aspnet.config 檔案中。 此檔案有適用於 .NET Framework 2.0 與 4.0 版本的版本。 (.NET Framework 的 3.0 與 3.5 版本與 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 為零則關閉了處理 ASP.NET 請求的受管理執行緒。 當應用程式在 IIS 應用池中執行時,請求會留在 IIS I/O 執行緒上,因此 IIS 執行緒設定會限制並行性。
設定的 requestQueueLimit 運作方式與 requestQueueLimit processModel 元素的屬性相同,而 processModel 屬性則設定在 ASP.NET 應用程式的 Web.config 檔案中。 然而, requestQueueLimit aspnet.config 檔案中的設定會 requestQueueLimit 覆蓋 Web.config 檔案中的設定。 換句話說,如果兩個屬性都被設定(預設情況下為真),aspnet.config requestQueueLimit 檔案中的設定會優先。
Example
以下範例說明如何在以下情況下配置 ASP.NET aspnet.config 檔案的全程序行為:
該應用程式託管於 IIS 7.0 應用程式池中。
IIS 7.0 目前以整合模式運行。
該應用程式使用 .NET Framework 3.5 SP1 或更新版本。
範例中的數值為預設值。
<configuration>
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
</system.web>
</configuration>