Compartilhar via


Usar o Editor de Configuração: gerar scripts

por Crystal Hoyer

Meta passo a passo

Este passo a passo tem como objetivo demonstrar como usar a funcionalidade Gerar Script do Editor de Configuração por meio do exemplo de geração do pool de aplicativos.

Pré-requisitos

Este passo a passo requer os seguintes pré-requisitos:

Parte 1: criar um pool de aplicativos usando o editor de configuração

  1. Inicie o Editor de Configuração no Gerenciador do IIS clicando duas vezes no recurso "Editor de Configuração" de uma conexão de servidor.

  2. Na Seção: menu suspenso clique em system.applicationHost –> applicationPools

  3. Na grade de propriedades exibida abaixo, clique na elipse "..." na primeira linha, que corresponde ao item (coleção).

  4. No editor de coleção, você verá uma lista dos pools de aplicativos que já existem.

  5. No painel de ações, clique em "Adicionar"

  6. Preencha a grade de propriedades exibida na seção Propriedades.

    1. Observe que a propriedade "name" tem uma chave no símbolo. Isso indica um campo obrigatório. Insira "applicationPool1" como seu nome para criar um novo pool de aplicativos.
    2. Selecione processModel para expandir.
    3. Definir userName como "PoolId1"
    4. Definir senha como "PoolId1Pwd"
    5. Alterar identityType para "SpecificUser"
    6. Opcionalmente, você pode alterar outras configurações aqui
  7. [opcional] Para confirmar as alterações no sistema de configuração, clique em Aplicar no painel Ações. No entanto, para fins do nosso passo a passo, não faça isso.

Parte 2: gerar script

Depois de fechar a caixa de diálogo de propriedades, clique no link Gerar script no painel Ações. As três guias da caixa de diálogo Script exibem três tipos de scripts para realizar as ações que fizemos nesta seção.

Código gerenciado: snippet de código em C# para criar '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();
    }
}

Script: código Jscript para criar '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();

Linha de comando: comandos appcmd para criar 'applicationPool1' e especificar uma identidade.

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

Parte 3: criar um programa em C# que crie 10 pools de aplicativos

Com base no código gerado pelo Editor de Configuração, refatoraremos o código para criar um pool de aplicativos para o método "CreateApplicationPool". O arquivo final fica assim:

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);
}
}

Resumo

Agora você criou código para criar 10 pools de aplicativos com a ajuda do Editor de Configuração.