Compartir a través de


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

  1. 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).
  2. En el panel Conexiones, haga clic en la conexión de servidor a la que desea agregar el módulo nativo.

  3. En la página Inicio del servidor, haga doble clic en Módulos.
    Screenshot of five icons titled MIME Types, Modules, Output Caching, Server Certificates, and Worker Processes. The icon titled Modules is highlighted.

  4. En el panel Acciones, haga clic en Configurar módulos nativos...

  5. En el cuadro de diálogo Configurar módulos nativos, haga clic en Registrar...
    Screenshot of the Configure Native Modules dialog box.

  6. En el cuadro de diálogo Registrar módulo nativo, en el cuadro Nombre, escriba un nombre para el módulo nativo.

  7. 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.
    Screenshot of the Path box showing the file system path and the name of the location of the . d d l file.

  8. 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.

  9. 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

  1. 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).
  2. Vaya al nivel de servidor, sitio o aplicación que desea administrar.

  3. En la página Principal del servidor, sitio o aplicación, haga doble clic en Módulos.

  4. En el panel Acciones, haga clic en Configurar módulos nativos...

  5. 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.
    Screenshot of the Configure Native Modules dialog box. The registered module titled UriCacheModule is selected.

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()