Condividi tramite


Uso dell'editor di configurazione: Generare script

di Crystal Hoyer

Obiettivo della procedura dettagliata

Questa procedura dettagliata è destinata a illustrare come usare la funzionalità Genera script dell'editor di configurazione tramite l'esempio di generazione del pool di applicazioni.

Prerequisiti

Questa procedura dettagliata richiede i prerequisiti seguenti:

Parte 1 : Creare un pool di applicazioni usando l'editor di configurazione

  1. Avviare l'editor di configurazione in Gestione IIS facendo doppio clic sulla funzionalità "Editor configurazione" da una connessione server.

  2. Nel menu a discesa Sezione fare clic su system.applicationHost -> applicationPools

  3. Nella griglia delle proprietà visualizzata di seguito fare clic sui puntini di sospensione "..." nella prima riga, che corrisponde all'elemento (Raccolta).

  4. Nell'editor raccolta verrà visualizzato un elenco dei pool di applicazioni già esistenti.

  5. Nel riquadro azioni fare clic su "Aggiungi"

  6. Compilare la griglia delle proprietà visualizzata nella sezione Proprietà .

    1. Si noti che la proprietà "name" ha una chiave nel simbolo. Indica un campo obbligatorio. Immettere "applicationPool1" come nome per creare un nuovo pool di applicazioni.
    2. Selezionare processModel per espandere.
    3. Impostare userName su "PoolId1"
    4. Impostare la password su "PoolId1Pwd"
    5. Modificare identityType in "SpecificUser"
    6. È possibile modificare facoltativamente altre impostazioni qui
  7. [facoltativo] Per eseguire il commit delle modifiche apportate al sistema di configurazione, fare clic su Applica nel riquadro Azioni . Tuttavia, allo scopo della procedura dettagliata, non farlo.

Parte 2 : Generare script

Dopo aver chiuso la finestra di dialogo delle proprietà, fare clic sul collegamento Genera script nel riquadro Azioni . Le 3 schede della finestra di dialogo script visualizzano 3 tipi di script per eseguire le azioni eseguite in questa sezione.

Codice gestito: frammento di codice C# per creare '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();
    }
}

Scripting: codice Jscript per creare '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();

Riga di comando: comandi appcmd per creare 'applicationPool1' e specificare un identità.

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 : Creare un programma C# che crea 10 pool di applicazioni

In base al codice generato dall'editor di configurazione, verrà eseguito il refactoring del codice per creare un pool di applicazioni al metodo "CreateApplicationPool". Il codice finale è simile al seguente:

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

Riepilogo

È stato creato il codice per creare 10 pool di applicazioni con assistenza dall'editor di configurazione.