Compartir a través de


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

  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 that shows the 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 that shows 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 that shows the Register Native Module dialog box.

  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 that shows the Configure Native Modules dialog box. UriCacheModule is selected.

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 (,).
Valor Descripción
bitness32 Especifique el valor bitness32 cuando el módulo global sea un archivo .dll de 32 bits y IIS solo deba cargar el módulo global para los procesos de trabajo que se ejecutan en modo WOW64 (simulación de 32 bits) en un sistema operativo de 64 bits.
bitness64 Especifique el valor bitness64 cuando el módulo global sea un archivo .dll de 64 bits y IIS solo deba cargar el módulo global para los procesos de trabajo que se ejecutan en modo de 64 bits.
integratedMode Especifique el valor integratedMode cuando el módulo global deba usar la canalización de procesamiento de solicitudes integrada para procesar solicitudes de contenido administrado.
ISAPIMode Especifique el valor ISAPIMode cuando el módulo global deba usar la extensión ISAPI de ASP.NET, Aspnet_isapi.dll, para procesar las solicitudes de contenido administrado.
runtimeVersionv1.1 Especifique el valor runtimeVersionv1.1 cuando el módulo global solo deba cargarse para los grupos de aplicaciones configurados para usar .NET Framework 1.1.
runtimeVersionv2.0 Especifique el valor runtimeVersionv2.0 cuando el módulo global solo deba cargarse para los grupos de aplicaciones configurados para usar .NET Framework 2.0.

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