Globale Module <globalModules>
Übersicht
Das <globalModules>
-Element definiert die Module auf globaler Ebene, die auf einem IIS 7-Server installiert sind. Das <globalModules>
-Element ist nur auf der Serverebene verfügbar. Wenn Sie also Module installieren, aktualisiert IIS nur die Datei „ApplicationHost.config“. Sie müssen auf dem Server als Administrator angemeldet sein, um native Module installieren zu können.
IIS 7 implementiert den Großteil der Anforderungsverarbeitung über systemeigene Module. Wenn Sie einen IIS 7-Rollendienst oder ein Feature mithilfe des Dienst-Managers installieren, fügt das IIS-Installationsprogramm dem <globalModules>
-Element einen Eintrag für dieses Modul hinzu. Wenn Sie also beispielsweise den Rollendienst für die Standardauthentifizierung auf Ihrem IIS 7-Server installieren, fügt das Installationsprogramm dem <globalModules>
-Element einen BasicAuthenticationModule-Eintrag hinzu.
Wenn Sie ein Drittanbietermodul installieren, müssen Sie dem <globalModules>
-Element einen Eintrag für dieses Modul hinzufügen. Dazu können Sie den IIS-Manager nutzen, die Datei „ApplicationHost.config“ manuell bearbeiten oder das Befehlszeilentool „AppCmd.exe“ verwenden.
Um ein Modul in einer Anwendung zu aktivieren, müssen Sie das <module>
-Element der Anwendung bearbeiten.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <globalModules> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <globalModules> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <globalModules> -Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <globalModules> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <globalModules> -Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | N/V |
Setup
Das <globalModules>
-Element ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Installieren eines nativen Moduls
Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):
Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows 8 oder Windows 8.1:
- Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Vista oder Windows 7:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Klicken Sie im Bereich Verbindungen auf die Serververbindung, der Sie das native Modul hinzufügen möchten.
Doppelklicken Sie auf der Startseite des Servers auf Module.
Klicken Sie im Bereich Aktionen auf Native Module konfigurieren....
Klicken Sie im Dialogfeld Native Module konfigurieren auf Registrieren....
Geben Sie im Dialogfeld Natives Modul registrieren im Feld Name einen Namen für das native Modul ein.
Geben Sie im Feld Pfad den Dateisystempfad des Speicherorts der DLL-Datei ein, oder klicken Sie auf die Schaltfläche Durchsuchen.
Wählen Sie im Dialogfeld Native Module konfigurieren die Option für das native Modul aus, das Sie soeben registriert haben, klicken Sie auf OK, und klicken Sie dann erneut auf OK. Dadurch kann das systemeigene Modul ausgeführt werden und steht für Sites und Anwendungen auf Ihrem Webserver zur Verfügung.
Hinweis
Wenn Sie die Ausführung des nativen Moduls nicht aktivieren möchten, deaktivieren Sie die Option für das native Modul, und klicken Sie anschließend auf OK.
Optional können Sie das native Modul sperren, wenn Sie verhindern möchten, dass es auf niedrigeren Ebenen im Konfigurationssystem außer Kraft gesetzt wird. Wählen Sie auf der Seite Module das Modul aus, und klicken Sie anschließend im Bereich Aktionen auf Sperren.
Aktivieren eines nativen Moduls
Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):
Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows 8 oder Windows 8.1:
- Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Vista oder Windows 7:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Navigieren Sie zu der Server-, Site- oder Anwendungsebene, die Sie verwalten möchten.
Doppelklicken Sie auf der Startseite des Servers, der Site oder der Anwendung auf Module.
Klicken Sie im Bereich Aktionen auf Native Module konfigurieren....
Wählen Sie im Dialogfeld Native Module konfigurieren die Option für das native Modul aus, das Sie aktivieren möchten, und klicken Sie anschließend auf OK.
Konfiguration
Das <globalModules>
-Element enthält eine Sammlung von <add>
-Elementen. Jedes Element in der Sammlung konfiguriert ein globales Modul für den Server.
Attribute
Keine
Untergeordnete Elemente
Element | Beschreibung |
---|---|
add |
Optionales Element. Fügt der Sammlung globaler Module ein natives Modul hinzu. |
clear |
Optionales Element. Entfernt alle Verweise auf native Module aus der Sammlung globaler Module. |
remove |
Optionales Element. Entfernt einen Verweis auf ein bestimmtes natives Modul aus der Sammlung globaler Module. |
Konfigurationsbeispiel
Das folgende Beispiel zeigt einen <globalModules>
-Abschnitt von IIS 7, der Einträge für alle Module enthält, die in der minimalen Installation des Webservers enthalten sind. Darüber hinaus enthält er einen Eintrag für das Modul BasicAuthenticationModule sowie einen weiteren Eintrag für das Drittanbietermodul 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>
Beispielcode
In den folgenden Beispielen wird ein natives Modul namens „ImageCopyrightModule“ in IIS 7 installiert und automatisch auf dem gesamten Server aktiviert.
AppCmd.exe
appcmd.exe install module /name:ImageCopyrightModule /image:%windir%\system32\inetsrv\imageCopyrightModule.dll
Sie können auch die folgende Syntax verwenden:
appcmd.exe set config -section:system.webServer/globalModules /+"[name='ImageCopyrightModule',image='%windir%\system32\inetsrv\imageCopyrightModule.dll']" /commit:apphost
Hinweis
Legen Sie den commit-Parameter auf apphost
fest, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei „ApplicationHost.config“ festgelegt.
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()