Использование редактора конфигурации: создание скриптов
Цель пошагового руководства
В этом пошаговом руководстве показано, как использовать функцию создания скрипта редактора конфигурации на примере создания пула приложений.
Предварительные требования
Для этого пошагового руководства требуются следующие предварительные требования.
Часть 1. Создание пула приложений с помощью редактора конфигурации
Запустите редактор конфигурации в диспетчере IIS, дважды щелкнув компонент "Редактор конфигурации" из подключения к серверу.
В раскрывающемся меню Раздел: выберите system.applicationHost —> applicationPools.
В сетке свойств, отображаемой ниже, щелкните многоточие "..." в первой строке, которая соответствует элементу (Коллекция).
В редакторе коллекций вы увидите список пулов приложений, которые уже существуют.
В области действий нажмите кнопку "Добавить".
Заполните сетку свойств, отображаемую в разделе Свойства .
- Обратите внимание, что свойство "name" содержит ключ в символе. Это указывает обязательное поле. Введите applicationPool1 в качестве имени, чтобы создать пул приложений.
- Выберите processModel для развертывания.
- Присвойте userName значение "PoolId1"
- Задайте для пароля значение PoolId1Pwd.
- Измените identityType на SpecificUser
- При необходимости можно изменить другие параметры здесь.
[необязательно] Чтобы зафиксировать изменения в системе конфигурации, нажмите кнопку Применить на панели Действия . Однако для целей нашего пошагового руководства, пожалуйста, не делайте этого.
Часть 2. Создание скрипта
После закрытия диалогового окна свойств щелкните ссылку Создать скрипт на панели Действия . На трех вкладках диалогового окна "Скрипт" отображаются 3 типа скриптов для выполнения действий, которые мы выполнили в этом разделе.
Управляемый код: фрагмент кода C# для создания applicationPool1
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();
}
}
Создание скриптов: код JScript для создания applicationPool1
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();
Командная строка: команды Appcmd для создания applicationPool1 и указания идентификатора.
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. Создание программы C#, которая создает 10 пулов приложений
На основе кода, созданного редактором конфигурации, мы рефакторингом кода создадим один пул приложений для метода 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 пулов приложений с помощью редактора конфигурации.