Módulos globales <globalModules>
Información general
El elemento <globalModules>
define los módulos de nivel global instalados en un servidor de IIS 7. El elemento <globalModules>
solo está disponible a el nivel de servidor, por lo que cuando se instalan módulos, IIS solo actualiza el archivo ApplicationHost.config. Para instalar módulos nativos, debe ser administrador del servidor.
IIS 7 implementa la mayoría de su procesamiento de solicitudes mediante módulos nativos. Al instalar un servicio de rol o una característica de IIS 7 mediante Service Manager, el instalador de IIS agrega una entrada al elemento <globalModules>
de ese módulo. Por ejemplo, al instalar el servicio de rol de autenticación básica en el servidor de IIS 7, el instalador agrega una entrada BasicAuthenticationModule al elemento <globalModules>
.
Al instalar un módulo de terceros, debe agregar una entrada al elemento <globalModules>
de ese módulo. Puede hacerlo mediante el Administrador de IIS, editando manualmente el archivo ApplicationHost.config o mediante la herramienta de línea de comandos AppCmd.exe.
Para habilitar un módulo en una aplicación, debe editar el elemento <module>
de la aplicación.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <globalModules> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <globalModules> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <globalModules> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <globalModules> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <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
El elemento <globalModules>
contiene una colección de elementos <add>
. Cada elemento de la colección configura un módulo global en el servidor.
Atributos
Ninguno.
Elementos secundarios
Elemento | Descripción |
---|---|
add |
Elemento opcional. Agrega un módulo nativo a la colección de módulos globales. |
clear |
Elemento opcional. Quita todas las referencias a módulos nativos de la colección de módulos globales. |
remove |
Elemento opcional. Quita una referencia a un módulo nativo específico de la colección de módulos globales. |
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()