Adición de módulos globales <add>
Información general
El elemento <add>
de la colección <globalModules>
especifica un módulo global individual que se va a agregar al servidor web.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <add> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <add> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <add> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <add> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <add> de la colección <globalModules> se introdujo en IIS 7.0. |
IIS 6,0 | N/D |
Configuración
El elemento <globalModules>
se incluye en la instalación predeterminada de IIS 7.
Procedimientos
Instalación de un módulo nativo
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, haga clic en la conexión de servidor a la que desea agregar el módulo nativo.
En la página Inicio del servidor, haga doble clic en Módulos.
En el panel Acciones, haga clic en Configurar módulos nativos...
En el cuadro de diálogo Configurar módulos nativos, haga clic en Registrar...
En el cuadro de diálogo Registrar módulo nativo, en el cuadro Nombre, escriba un nombre para el módulo nativo.
En el cuadro Ruta de acceso, escriba la ruta de acceso del sistema de archivos de la ubicación del archivo .dll o haga clic en el botón Examinar.
En el cuadro de diálogo Configurar módulos nativos, seleccione la opción del módulo nativo que acaba de registrar, haga clic en Aceptar y, a continuación, vuelva a hacer clic en Aceptar. Esta acción permite que el módulo nativo se ejecute y que esté disponible para sitios y aplicaciones en el servidor web.
Nota:
Si no desea permitir que se ejecute el módulo nativo, desactive la opción del módulo nativo y, a continuación, haga clic en Aceptar.
Opcionalmente, puede bloquear el módulo nativo si no desea que se invalide en niveles inferiores del sistema de configuración. En la página Módulos, seleccione el módulo y, a continuación, haga clic en Bloquear en el panel Acciones.
Habilitación de un módulo nativo
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Vaya al nivel de servidor, sitio o aplicación que desea administrar.
En la página Principal del servidor, sitio o aplicación, haga doble clic en Módulos.
En el panel Acciones, haga clic en Configurar módulos nativos...
En el cuadro de diálogo Configurar módulos nativos, seleccione la opción correspondiente al módulo nativo que desea habilitar y, a continuación, haga clic en Aceptar.
Configuración
Cada elemento <add>
de la colección <globalModules>
debe contener un atributo name que identifique el módulo y un atributo image que apunte al archivo DLL que implementa el módulo.
Atributos
Atributo | Descripción | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
image |
Atributo de cadena necesario. Especifica la ruta de acceso física del archivo .dll para el módulo global. El valor del atributo se expandirá cuando se usen variables de entorno, como %windir%. |
||||||||||||||
name |
Atributo de cadena necesario. Especifica el nombre del módulo global. |
||||||||||||||
preCondition |
Atributo de cadena opcional. Especifica las condiciones en las que se ejecutará el módulo global. El atributo preCondition puede tener uno o varios de los siguientes valores posibles. Si especifica más de un valor, separe los valores con una coma (,).
|
Elementos secundarios
Ninguno.
Ejemplo de configuración
En el ejemplo siguiente se muestra una sección de IIS 7 <globalModules>
que contiene entradas para todos los módulos incluidos en la instalación mínima del servidor web. También se incluye una entrada para BasicAuthenticationModule y otra para el módulo de terceros ImageCopyrightModule.
<globalModules>
<add name="UriCacheModule"
image="%windir%\System32\inetsrv\cachuri.dll" />
<add name="FileCacheModule"
image="%windir%\System32\inetsrv\cachfile.dll" />
<add name="TokenCacheModule"
image="%windir%\System32\inetsrv\cachtokn.dll" />
<add name="HttpCacheModule"
image="%windir%\System32\inetsrv\cachhttp.dll" />
<add name="StaticCompressionModule"
image="%windir%\System32\inetsrv\compstat.dll" />
<add name="DefaultDocumentModule"
image="%windir%\System32\inetsrv\defdoc.dll" />
<add name="DirectoryListingModule"
image="%windir%\System32\inetsrv\dirlist.dll" />
<add name="ProtocolSupportModule"
image="%windir%\System32\inetsrv\protsup.dll" />
<add name="StaticFileModule"
image="%windir%\System32\inetsrv\static.dll" />
<add name="AnonymousAuthenticationModule"
image="%windir%\System32\inetsrv\authanon.dll" />
<add name="RequestFilteringModule"
image="%windir%\System32\inetsrv\modrqflt.dll" />
<add name="CustomErrorModule"
image="%windir%\System32\inetsrv\custerr.dll" />
<add name="HttpLoggingModule"
image="%windir%\System32\inetsrv\loghttp.dll" />
<add name="RequestMonitorModule"
image="%windir%\System32\inetsrv\iisreqs.dll" />
<add name="BasicAuthenticationModule"
image="%windir%\System32\inetsrv\authbas.dll" />
<add name="ImageCopyrightModule"
image="%windir%\System32\inetsrv\ImageCopyrightModule.dll" />
</globalModules>
Código de ejemplo
En los ejemplos siguientes se instala un módulo nativo denominado ImageCopyrightModule en IIS 7 y se habilita automáticamente en todo el servidor.
AppCmd.exe
appcmd.exe install module /name:ImageCopyrightModule /image:%windir%\system32\inetsrv\imageCopyrightModule.dll
También puede usar la sintaxis siguiente:
appcmd.exe set config -section:system.webServer/globalModules /+"[name='ImageCopyrightModule',image='%windir%\system32\inetsrv\imageCopyrightModule.dll']" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetro de confirmación en apphost
cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection globalModulesSection = config.GetSection("system.webServer/globalModules");
ConfigurationElementCollection globalModulesCollection = globalModulesSection.GetCollection();
ConfigurationElement addElement = globalModulesCollection.CreateElement("add");
addElement["name"] = @"ImageCopyrightModule";
addElement["image"] = @"%windir%\system32\inetsrv\imageCopyrightModule.dll";
globalModulesCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim globalModulesSection As ConfigurationSection = config.GetSection("system.webServer/globalModules")
Dim globalModulesCollection As ConfigurationElementCollection = globalModulesSection.GetCollection
Dim addElement As ConfigurationElement = globalModulesCollection.CreateElement("add")
addElement("name") = "ImageCopyrightModule"
addElement("image") = "%windir%\system32\inetsrv\imageCopyrightModule.dll"
globalModulesCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var globalModulesSection = adminManager.GetAdminSection("system.webServer/globalModules", "MACHINE/WEBROOT/APPHOST");
var globalModulesCollection = globalModulesSection.Collection;
var addElement = globalModulesCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "ImageCopyrightModule";
addElement.Properties.Item("image").Value = "%windir%\\system32\\inetsrv\\imageCopyrightModule.dll";
globalModulesCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set globalModulesSection = adminManager.GetAdminSection("system.webServer/globalModules", "MACHINE/WEBROOT/APPHOST")
Set globalModulesCollection = globalModulesSection.Collection
Set addElement = globalModulesCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "ImageCopyrightModule"
addElement.Properties.Item("image").Value = "%windir%\system32\inetsrv\imageCopyrightModule.dll"
globalModulesCollection.AddElement addElement
adminManager.CommitChanges()