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

公開日: 2008 年 3 月 20 日 (作業者: choyer (英語))

更新日: 2009 年 7 月 16 日 (作業者: choyer (英語))

チュートリアルの目的

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

必要条件

このチュートリアルの必要条件は次のとおりです。

パート 1 - 構成エディターを使用したアプリケーション プールの作成

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

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

  3. 下に表示されるプロパティ グリッドで、最初の行の省略記号 (...) をクリックします。これは、[(コレクション)] アイテムに相当します。

  4. コレクション エディターで、既存のアプリケーション プールの一覧を確認できます。

  5. 操作ウィンドウで、[追加] をクリックします。

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

    1. name プロパティには鍵のアイコンが表示されています。これは必須フィールドを意味します。新しいアプリケーション プールを作成するために、名前として「applicationPool1」と入力します。

    2. processModel をクリックして展開します。

    3. userName を「PoolId1」と設定します。

    4. password を「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# プログラムの作成

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

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 個のアプリケーション プールを作成するコードを作成できました。

関連コンテンツ

記事