Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
por Crystal Hoyer
Objetivo del tutorial
En este tutorial se pretende enseñar a usar la funcionalidad de script generado del Editor de configuración a través del ejemplo de generación de grupos de aplicaciones.
Requisitos previos
Este tutorial requiere los siguientes requisitos previos:
Parte 1: Creación de un grupo de aplicaciones mediante el editor de configuración
Inicie el Editor de configuración en el Administrador de IIS haciendo doble clic en la característica "Editor de configuración" desde una conexión de servidor.
En el menú desplegable Sección: haga clic en system.applicationHost -> applicationPools
En la cuadrícula de propiedades que se muestra a continuación, haga clic en el botón de puntos suspensivos "..." de la primera fila, que corresponde al elemento (Colección).
En el Editor de colección, verá una lista de los grupos de aplicaciones que ya existen.
En el panel de acciones, haga clic en "Añadir"
Rellene la cuadrícula de propiedades que se muestra en la sección Propiedades.
- Observe que la propiedad "nombre" tiene una clave en el símbolo. Esto indica un campo obligatorio. Introduzca "applicationPool1" como nombre para crear un nuevo grupo de aplicaciones.
- Seleccione processModel para expandir el contenido.
- Establezca "userName" en "PoolId1"
- Establezca la contraseña en "PoolId1Pwd"
- Cambie identityType a "SpecificUser"
- Opcionalmente, puede cambiar otras opciones aquí.
[opcional] Para confirmar los cambios en el sistema de configuración, haga clic en Aplicar en el panel de Acciones. Sin embargo, para el propósito de nuestro tutorial, no lo haga.
Parte 2: Generación de script
Después de cerrar el cuadro de diálogo de propiedades, haga clic en el vínculo Generar script del panel Acciones. Las tres pestañas del cuadro de diálogo Script muestran tres tipos de scripts para realizar las acciones de esta sección.
Código administrado: fragmento de código de C# para crear "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: código Jscript para crear "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();
Línea de comandos: comandos de Appcmd para crear "applicationPool1" y especificar un identificador.
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: Creación de un programa de C# que genera 10 grupos de aplicaciones
En función de cuál sea el código que haya generado el Editor de configuración, lo refactorizaremos para crear un grupo de aplicaciones en el método "CreateApplicationPool". El código final tiene el siguiente aspecto:
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);
}
}
Resumen
Ahora ha creado código para crear 10 grupos de aplicaciones con ayuda del Editor de configuración.