Compartilhar via


Módulos globais <globalModules>

Visão geral

O elemento <globalModules> define os módulos de nível global instalados em um servidor IIS 7. O elemento <globalModules> só está disponível no nível do servidor, portanto, quando você instala módulos, o IIS atualiza apenas o arquivo ApplicationHost.config. Você deve ser um administrador no servidor para instalar módulos nativos.

O IIS 7 implementa a maior parte do processamento de solicitações por meio de módulos nativos. Quando você instala um serviço de função ou recurso do IIS 7 usando o Service Manager, o instalador do IIS adiciona uma entrada ao elemento <globalModules> para esse módulo. Por exemplo, quando você instala o serviço de função de autenticação básica no servidor IIS 7, o instalador adiciona uma entrada BasicAuthenticationModule ao elemento <globalModules>.

Ao instalar um módulo de terceiros, você deve adicionar uma entrada ao elemento <globalModules> para esse módulo. Você pode fazer isso usando o Gerenciador do IIS editando manualmente o arquivo ApplicationHost.config ou usando a ferramenta de linha de comando AppCmd.exe.

Para habilitar um módulo em um aplicativo, você deve editar o elemento <module> do aplicativo.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <globalModules> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <globalModules> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <globalModules> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <globalModules> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <globalModules> foi introduzido no IIS 7.0.
IIS 6,0 N/D

Instalação

O elemento <globalModules> está incluído na instalação padrão do IIS 7.

Instruções

Como instalar um módulo nativo

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, selecione a conexão do servidor para a qual você deseja adicionar o módulo nativo.

  3. Na página inicial do servidor, clique duas vezes em Módulos.
    Screenshot of five icons titled MIME Types, Modules, Output Caching, Server Certificates, and Worker Processes. The icon titled Modules is highlighted.

  4. No painel Ações, clique em Configurar módulos nativos...

  5. Na caixa de diálogo Configurar Módulos Nativos, clique em Registrar...
    Screenshot of the Configure Native Modules dialog box.

  6. Na caixa de diálogo Registrar Módulo Nativo, na caixa Nome, digite um nome para o módulo nativo.

  7. Na caixa Demarcador, digite o demarcador do sistema de arquivos do local do arquivo .dll ou clique no botão Procurar
    Screenshot of the Path box showing the file system path and the name of the location of the . d d l file.

  8. Na caixa de diálogo Configurar Módulos Nativos, selecione a opção para o módulo nativo que você acabou de registrar, clique em OK e clique OK novamente. Isso permite que o módulo nativo seja executado e o disponibilize para sites e aplicativos em seu servidor Web.

    Observação

    Se você não quiser habilitar a execução do módulo nativo, desmarque a opção para o módulo nativo e clique em OK.

  9. Opcionalmente, você poderá bloquear o módulo nativo se não quiser que ele seja substituído em níveis inferiores no sistema de configuração. Na página Módulos, selecione o módulo e clique em Bloquear no painel Ações.

Como habilitar um módulo nativo

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. Navegue até o nível de servidor, site ou aplicativo que você deseja gerenciar.

  3. Na página inicial do servidor, site ou aplicativo, clique duas vezes em Módulos.

  4. No painel Ações, clique em Configurar módulos nativos...

  5. Na caixa de diálogo Configurar Módulos Nativos, selecione a opção para o módulo nativo que você deseja habilitar e clique em OK.
    Screenshot of the Configure Native Modules dialog box. The registered module titled UriCacheModule is selected.

Configuração

O elemento <globalModules> contém uma coleção de elementos <add>. Cada elemento na coleção configura um módulo global para o servidor.

Atributos

Nenhum.

Elementos filho

Elemento Descrição
add Elemento opcional.

Adiciona um módulo nativo à coleção de módulos globais.
clear Elemento opcional.

Remove todas as referências a módulos nativos da coleção de módulos globais.
remove Elemento opcional.

Remove uma referência a um módulo nativo específico da coleção de módulos globais.

Exemplo de configuração

O exemplo a seguir mostra uma seção <globalModules> do IIS 7 que contém entradas para todos os módulos incluídos na instalação mínima do servidor Web. Ele também inclui uma entrada para o móduloBasicAuthenticationModule e outra para o módulo ImageCopyrightModule de terceiros.

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

Exemplo de código

Os exemplos a seguir instalam um módulo nativo chamado ImageCopyrightModule no IIS 7 e o habilitam automaticamente em todo o servidor.

AppCmd.exe

appcmd.exe install module /name:ImageCopyrightModule /image:%windir%\system32\inetsrv\imageCopyrightModule.dll

Você também pode usar a seguinte sintaxe:

appcmd.exe set config -section:system.webServer/globalModules /+"[name='ImageCopyrightModule',image='%windir%\system32\inetsrv\imageCopyrightModule.dll']" /commit:apphost

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()