次の方法で共有


アプリケーション プールの既定値 <applicationPoolDefaults>

概要

<applicationPools> コレクションの <applicationPoolDefaults> コレクションは、Web サーバー上のすべてのアプリケーション プールの既定値を構成します。

Note

<applicationPoolDefaults> コレクションで明示的に定義されていない既定値は引き続き IIS 7 以降のスキーマの既定値を継承し、個々のアプリケーション プール設定が既定値をオーバーライドします。

互換性

バージョン メモ
IIS 10.0 <applicationInitialization> 要素は IIS 10.0 では変更されませんでした。
IIS 8.5 <applicationInitialization> 要素は IIS 8.5 では変更されませんでした。
IIS 8.0 IIS 8.0 の managedRuntimeVersion 属性に別の値 ("v4.0") が追加され、その既定値が "v2.0" ではなく "" に変更されました。
IIS 7.5 <applicationPoolDefaults> 要素は IIS 7.5 では変更されませんでした。
IIS 7.0 <applicationPoolDefaults> 要素が IIS 7.0 で導入されました。
IIS 6.0 <applicationPoolDefaults> 要素は、IIS 6.0 の IIsApplicationPools メタベース プロパティの一部を置き換えます。

段取り

<applicationPools> コレクションは、IIS 7 以降の既定のインストールに含まれています。

操作方法

アプリケーション プールの既定値をセットアップする方法

  1. 次のようにインターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーで、[スタート] ボタンをクリックし、[管理ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウでサーバー名を展開し、[アプリケーション プール] をクリックします。

  3. [操作] ウィンドウで、[アプリケーション プールの既定値の設定...] をクリックします。
    [フィルター] フィールドを示す [アプリケーション プール] 画面のスクリーンショット。

  4. [アプリケーション プールの既定値] ダイアログ ボックスで、目的のオプションを指定します。
    [アプリケーション プールの既定値] ダイアログ ボックスのスクリーンショット。

  5. 設定の指定が終了したら、[OK] をクリックします。

構成

属性

属性 説明
autoStart 省略可能な Boolean 属性です。

true にすると、アプリケーション プールの作成時または IIS の起動時にアプリケーション プールが自動的に開始される必要があると World Wide Web 発行サービス (W3SVC) に対して通知されます。

既定値は true です。
CLRConfigFile 省略可能な文字列値。

アプリケーション プールの .NET 構成ファイルを指定します。

注: この属性は IIS 7.5 で追加されました。

既定値はありません。
enable32BitAppOnWin64 省略可能な Boolean 属性です。

true にすると、64 ビット バージョンの Windows を実行するコンピューターで 32 ビット アプリケーションを実行できます。

既定値は false です。
managedPipelineMode 省略可能な列挙型属性。

マネージド コンテンツの要求を処理するために使用される要求処理モードを指定します。

managedPipelineMode 属性には、次のいずれかの値を指定できます。既定値は Integrated です。
Value 説明
Classic アプリケーション プールが IIS と ASP.NET に別個の要求処理パイプラインを使用することを指定します。これは、ASP.NET 1.1 アプリケーションと、統合モードでは機能しない ASP.NET 2.0 アプリケーションで機能します。

数値は 1 です。
Integrated アプリケーション プールが IIS と ASP.NET に統合された要求処理パイプラインを使用することを指定します。これは、ASP.NET 2.0 以降のアプリケーションでのみ動作します。

数値は 0 です。
managedRuntimeLoader 省略可能な文字列属性。

アプリケーション プールの事前読み込みに使用するマネージド ローダーを指定します。

注: この属性は IIS 7.5 で追加されました。

既定値は webengine4.dll です。
managedRuntimeVersion 省略可能な文字列属性。

アプリケーション プールで使用する .NET Framework バージョンを指定します。

managedRuntimeVersion 属性には、次のいずれかの値を指定できます。既定値は "" です。
Value 説明
v1.1 アプリケーション プールが .NET Framework バージョン 1.1 を使用することを指定します。
v2.0 アプリケーション プールが .NET Framework バージョン 2.0 を使用することを指定します。
v4.0 アプリケーション プールが .NET Framework バージョン 4.0 を使用することを指定します。
name 必須の文字列属性です。

サーバー上のアプリケーション プールの一意の名前を指定します。
queueLength 省略可能な uint 属性。

HTTP.sys に対して、アプリケーション プールのキューに登録する要求数がいくつになったら以降の要求を拒否するかを指定します。

このプロパティに設定した値を超えると、IIS は以降の要求を拒否し、503 エラーを返します。 loadBalancerCapabilities 設定が true の場合、503 で要求を拒否せずに、接続が閉じられます。 loadBalancerCapabilities の詳細については、「アプリケーション プール エラーの失敗設定」を参照してください。

既定値は 1000 です。
startMode 省略可能な列挙値。

アプリケーション プールのスタートアップの種類を指定します。

注: この属性は IIS 7.5 で追加されました。

startMode 属性には、次のいずれかの値を指定できます。既定値は OnDemand です。
Value 説明
AlwaysRunning 常に Windows プロセス アクティブ化サービス (WAS) がアプリケーション プールを開始することを指定します。 この動作を使用すると、HTTP 要求を処理する前にアプリケーションがオペレーティング環境を読み込むことができます。これで、アプリケーションの初期 HTTP 要求の起動処理が削減されます。

数値は 1 です。
OnDemand アプリケーション プールでホストされているアプリケーションに対して HTTP 要求が行われるときに、Windows プロセス アクティブ化サービス (WAS) がアプリケーション プールを開始することを指定します。 この動作は、これまでのバージョンの IIS での WAS 動作に似ています。

数値は 0 です。

子要素

要素 説明
cpu CPU アフィニティと CPU アクションを構成します。
environmentVariables ワーカー プロセスに渡す環境変数のコレクションを構成します。
failure アプリケーション プールが失敗したときに実行するアクションを構成します。
processModel アプリケーション プールのプロセス管理属性を構成します。
recycling アプリケーション プールのリサイクルを構成します。

構成サンプル

次の構成サンプルは、すべてのアプリケーション プールの既定の ID を組み込みのアプリケーション プール ID に指定し、到達するとアプリケーション プールをリサイクルする既定の要求数として 200 を指定します。

<applicationPools>
   <add name="DefaultAppPool" />
   <applicationPoolDefaults>
      <processModel identityType="ApplicationPoolIdentity" />
      <recycling>
         <periodicRestart requests="200" />
      </recycling>
   </applicationPoolDefaults>
</applicationPools>

サンプル コード

次の例は、自動的に開始し、バージョン 2.0 の .NET 環境を使用し、既定で統合パイプラインを使用するようにアプリケーション プールを構成します。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/applicationPools /applicationPoolDefaults.autoStart:"True" /commit:apphost

appcmd.exe set config -section:system.applicationHost/applicationPools /applicationPoolDefaults.managedRuntimeVersion:"v2.0" /commit:apphost

appcmd.exe set config -section:system.applicationHost/applicationPools /applicationPoolDefaults.managedPipelineMode:"Integrated" /commit:apphost

Note

AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず apphost に設定する必要があります。 これで、ApplicationHost.config ファイルの適切な場所セクションに構成設定がコミットされます。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

   private static void Main() {

      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");

         ConfigurationElement applicationPoolDefaultsElement = applicationPoolsSection.GetChildElement("applicationPoolDefaults");
         applicationPoolDefaultsElement["autoStart"] = true;
         applicationPoolDefaultsElement["managedRuntimeVersion"] = @"v2.0";
         applicationPoolDefaultsElement["managedPipelineMode"] = @"Integrated";

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Class Sample
   Shared Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
      Dim applicationPoolDefaultsElement As ConfigurationElement = applicationPoolsSection.GetChildElement("applicationPoolDefaults")
      applicationPoolDefaultsElement("autoStart") = True
      applicationPoolDefaultsElement("managedRuntimeVersion") = "v2.0"
      applicationPoolDefaultsElement("managedPipelineMode") = "Integrated"
      serverManager.CommitChanges()
   End Sub
End Class

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");
var applicationPoolDefaultsElement = applicationPoolsSection.ChildElements.Item("applicationPoolDefaults");
applicationPoolDefaultsElement.Properties.Item("autoStart").Value = true;
applicationPoolDefaultsElement.Properties.Item("managedRuntimeVersion").Value = "v2.0";
applicationPoolDefaultsElement.Properties.Item("managedPipelineMode").Value = "Integrated";

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST")
Set applicationPoolDefaultsElement = applicationPoolsSection.ChildElements.Item("applicationPoolDefaults")
applicationPoolDefaultsElement.Properties.Item("autoStart").Value = True
applicationPoolDefaultsElement.Properties.Item("managedRuntimeVersion").Value = "v2.0"
applicationPoolDefaultsElement.Properties.Item("managedPipelineMode").Value = "Integrated"

adminManager.CommitChanges()