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
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).
No painel Conexões, selecione a conexão do servidor para a qual você deseja adicionar o módulo nativo.
Na página inicial do servidor, clique duas vezes em Módulos.
No painel Ações, clique em Configurar módulos nativos...
Na caixa de diálogo Configurar Módulos Nativos, clique em Registrar...
Na caixa de diálogo Registrar Módulo Nativo, na caixa Nome, digite um nome para o módulo nativo.
Na caixa Demarcador, digite o demarcador do sistema de arquivos do local do arquivo .dll ou clique no botão Procurar
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.
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
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).
Navegue até o nível de servidor, site ou aplicativo que você deseja gerenciar.
Na página inicial do servidor, site ou aplicativo, clique duas vezes em Módulos.
No painel Ações, clique em Configurar módulos nativos...
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.
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()