<applicationPool> 要素 (Web 設定)

ASP.NET アプリケーションが IIS 7.0 以降のバージョンの統合モードで実行されている場合に、プロセス全体の動作を管理するために ASP.NET で使用される構成設定を指定します。

重要

この要素とサポートされる機能は、ASP.NET アプリケーションが IIS 7.0 以降のバージョンでホストされている場合にのみ機能します。

configuration
  <system.web>
    <applicationPool>

構文

<applicationPool
    maxConcurrentRequestsPerCPU="5000"
    maxConcurrentThreadsPerCPU="0"
    requestQueueLimit="5000" />  

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
maxConcurrentRequestsPerCPU ASP.NET で CPU ごとに許可される同時要求の数を指定します。
maxConcurrentThreadsPerCPU CPU ごとにアプリケーション プールに対して同時に実行できるスレッドの数を指定します。 これにより、要求を処理するために CPU ごとに使用できるマネージド スレッドの数を制限できるため、ASP.NET のコンカレンシーを制御する別の方法が提供されます。 既定では、この設定は 0 です。これは、ASP.NET で CPU ごとに作成できるスレッドの数を制限しないことを意味します。ただし、CLR スレッド プールでも作成可能なスレッドの数が制限されます。
requestQueueLimit 1 つのプロセスで ASP.NET のキューに入れることができる要求の最大数を指定します。 複数の ASP.NET アプリケーションが 1 つのアプリケーション プールで実行される場合、アプリケーション プール内のアプリケーションに対して行われる要求の累積セットは、この設定の対象となります。

子要素

なし。

親要素

要素 説明
<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 では、aspnet.config ファイルをバージョン 2.0 と共有します)。

重要

Windows 7 で IIS 7.0 を実行している場合は、アプリケーション プールごとに個別の aspnet.config ファイルを構成できます。 これにより、各アプリケーション プールのスレッドのパフォーマンスを調整できます。

maxConcurrentRequestsPerCPU 設定の場合、.NET Framework 4 の既定の設定 "5000" では、ASP.NET によって制御される要求の調整が事実上無効になります (CPU あたりの要求が実際に 5000 以上の場合を除く)。 代わりに、既定の設定では、CLR スレッド プールに依存して CPU ごとのコンカレンシーを自動的に管理します。 非同期要求処理を広範囲に使用するアプリケーションや、ネットワーク I/O でブロックされる実行時間の長い要求が多数あるアプリケーションでは、.NET Framework 4 の既定の制限値を増やすことができます。 maxConcurrentRequestsPerCPU を 0 に設定すると、ASP.NET 要求を処理するためのマネージド スレッドの使用が無効になります。 アプリケーションが IIS アプリケーション プールで実行されている場合、要求は IIS の I/O スレッドにとどまります。そのため、コンカレンシーは IIS のスレッド設定によって制限されます。

この requestQueueLimit 設定は、processModel 要素の requestQueueLimit 属性と同じように動作します。これは、ASP.NET アプリケーションの Web.config ファイルで設定されます。 ただし、aspnet.config ファイルの requestQueueLimit 設定は、Web.config ファイルの requestQueueLimit 設定よりも優先されます。 つまり、両方の属性が設定されている場合 (既定ではこうなっています)、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>  

関連項目