次の方法で共有


<applicationPool> 要素 (Web 設定)

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

Important

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

<configuration><system.web><applicationPool>

構文

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

属性および要素

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

Attributes

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

子要素

なし。

親要素

要素 Description
<system.web> ASP.NET がホスト アプリケーションとやり取りする方法に関する情報が含まれています。

注釈

統合モードで IIS 7.0 以降のバージョンを実行する場合、この要素の組み合わせにより、アプリケーションが IIS アプリケーション プールでホストされているときに、ASP.NET がスレッドとキューの要求を管理する方法を構成できます。 IIS 6 を実行している場合、または IIS 7.0 をクラシック モードまたは ISAPI モードで実行する場合、これらの設定は無視されます。

applicationPool設定は、.NET Framework の特定のバージョンで実行されるすべてのアプリケーション プールに適用されます。 設定は、aspnet.config ファイルに含まれています。 .NET Framework のバージョン 2.0 と 4.0 には、このファイルのバージョンがあります。 (.NET Framework のバージョン 3.0 と 3.5 では、aspnet.config ファイルがバージョン 2.0 と共有されます)。

Important

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

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

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

こちらも参照ください