次の方法で共有


構成エディターの使用: スクリプトを生成する

投稿者: Crystal Hoyer

チュートリアルの目標

このチュートリアルでは、アプリケーション プールの生成を例にして、構成エディターのスクリプト生成機能を使用する方法を示します。

前提条件

このチュートリアルでは、次の前提条件が必要です。

パート 1 – 構成エディターを使用してアプリケーション プールを作成する

  1. サーバー接続から [構成エディター] 機能をダブルクリックし、IIS マネージャーで構成エディターを起動します。

  2. [セクション:] ドロップダウン メニューで [system.applicationHost]、[applicationPools] の順にクリックします。

  3. 下に表示されているプロパティ グリッドで、最初の行の省略記号 "…" をクリックします。これは [(コレクション)] 項目に対応しています。

  4. [コレクション エディター] に、既に存在するアプリケーション プールの一覧が表示されます。

  5. [操作] ペインの [追加] をクリックします。

  6. [プロパティ] セクションに表示されているプロパティ グリッドに入力します。

    1. "name" プロパティのシンボル内にキーがあることに注意してください。 これは必須フィールドであることを示します。 名前に「applicationPool1」と入力し、新しいアプリケーション プールを作成します。
    2. 展開する processModel を選択します。
    3. userName を "PoolId1" に設定します
    4. パスワードを "PoolId1Pwd" に設定します
    5. identityType を "SpecificUser" に変更します
    6. 必要に応じて、ここで他の設定を変更できます
  7. [省略可能] 構成システムに対する変更をコミットするには、[アクション] ペインの [適用] をクリックします。 ただし、チュートリアルの目的上、それは行わないでください。

パート 2 – スクリプトを生成する

プロパティ ダイアログを閉じた後、[アクション] ペインの [スクリプトの生成] リンクをクリックします。 スクリプト ダイアログの 3 つのタブには、このセクションで実行したアクションを実行するための 3 種類のスクリプトが表示されます。

マネージド コード: ‘applicationPool1' を作成するための C# コード スニペット

using System;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {

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

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

    ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();

    ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
    addElement["name"] = @"applicationPool1";

    ConfigurationElement processModelElement = addElement.ChildElements["processModel"];
    processModelElement["identityType"] = @"SpecificUser";
    processModelElement["userName"] = @"PoolId1";
    processModelElement["password"] = @"PoolId1Pwd";
    applicationPoolsCollection.Add(addElement);

    serverManager.CommitChanges();
    }
}

スクリプト: ‘applicationPool1' を作成するための Jscript コード

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

var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");

var applicationPoolsCollection = applicationPoolsSection.Collection;

var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "applicationPool1";
var processModelElement = addElement.ChildElements.Item("processModel");
processModelElement.Properties.Item("identityType").Value = "SpecificUser";
processModelElement.Properties.Item("userName").Value = "PoolId1";
processModelElement.Properties.Item("password").Value = "PoolId1Pwd";
applicationPoolsCollection.AddElement(addElement);

adminManager.CommitChanges();

コマンド ライン: 'applicationPool1' を作成し、ID を指定するための Appcmd コマンド。

appcmd.exe set config -section:system.applicationHost/applicationPools /+".[name='applicationPool1']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /.[name='applicationPool1'].processModel.identityType:"SpecificUser" /.[name='applicationPool1'].processModel.userName:"PoolId1" /.[name='applicationPool1'].processModel.password:"PoolId1Pwd" /commit:apphost

パート 3 – 10 個のアプリケーション プールを作成する C# プログラムを作成する

構成エディターによって生成されたコードに基づき、コードをリファクタリングし、メソッド "CreateApplicationPool" に 1 つのアプリケーション プールを作成します。 最終的なファイルは次のようになります。

using System;
using Microsoft.Web.Administration;
 
internal static class Sample {
  private static void Main() {
  ServerManager serverManager = new ServerManager();
Configuration config = serverManager.GetApplicationHostConfiguration();
 
ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
 
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
 
for (int i = 0; i < 10; i++) {
CreateApplicationPool(applicationPoolsCollection,
"AppPool" + i.ToString(),
  "AppPoolId" + i.ToString(),
"AppPoolPwd" + i.ToString());
}
serverManager.CommitChanges();
}
 
private static void CreateApplicationPool(ConfigurationSection applicationPoolsSection,
string appPoolName,
string appPoolUserName,
string appPoolPassword) 
{
  ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = appPoolName;
 
ConfigurationElement processModelElement = addElement.ChildElements["processModel"];
processModelElement["identityType"] = @"SpecificUser";
processModelElement["userName"] = appPoolUserName;
processModelElement["password"] = appPoolPassword;
applicationPoolsCollection.Add(addElement);
}
}

まとめ

これで、構成エディターを使用して 10 個のアプリケーション プールを作成するコードが作成されました。