Module Element <modules element>
Übersicht
Das <modules>
-Element definiert die Module mit systemeigenem Code und verwaltetem Code, die für eine Anwendung registriert sind. Als Teil der Internetinformationsdienste (IIS), der Anforderungspipelineverarbeitung, ruft IIS jedes Modul auf, das im <modules>
-Element für jede Anforderung aufgeführt ist. Häufig verwenden Sie Module, um benutzerdefinierte Funktionen wie Sicherheit, Statistik und Protokollierung oder benutzerdefinierte Inhaltsverarbeitung zu implementieren, z. B. das Hinzufügen von benutzerdefinierten Kopf- oder Fußzeilen.
Das <modules>
-Element enthält eine Sammlung von <add>
-Elementen. Jedes Element definiert ein aktiviertes Modul für die Anwendung. Wenn Sie ein Modul aktivieren, können Sie dessen Dienst für eine bestimmte Anwendung bereitstellen.
Wenn Sie ein systemeigenes Modul aktivieren möchten, müssen Sie es zuerst auf dem Server installieren. Weitere Informationen finden Sie im <globalModules>-Element.
Sie müssen kein verwaltetes Modul installieren; Sie können sie für jede Anwendung direkt aktivieren. Dadurch können Anwendungen ihre verwalteten Module direkt in die Anwendung aufnehmen, indem Sie sie in der Datei "Web.config" der Anwendung registrieren und die Implementierung in den Verzeichnissen "/BIN" oder "/App_Code" bereitstellen.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <modules> Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <modules> Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <modules> Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <modules> Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <modules> Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | N/V |
Setup
Das <modules>
-Element ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Hinzufügen eines verwalteten Moduls zur Anwendung
Öffnen Sie den Internet Information Services (IIS) Manager:
Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:
- Klicken Sie in der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows 8 oder Windows 8.1 verwenden:
- Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
- Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Vista oder Windows 7 verwenden:
- Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
- Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Websites, und wechseln Sie dann zur Website oder Anwendung, der Sie ein verwaltetes Modul hinzufügen möchten.
Doppelklicken Sie im Startbereich auf Module.
Klicken Sie im Bereich „Aktionen“ auf Verwaltetes Modul hinzufügen.
Geben Sie im Dialogfeld Verwaltetes Modul hinzufügen den Namen des verwalteten Moduls im Feld Name ein, und geben Sie dann im Feld "Typ" den vollqualifizierten .NET Framework-Typ des Moduls ein.
Wählen Sie die Option Nur aufrufen für Anforderungen an ASP.NET Anwendungen oder verwaltete Handler aus, wenn das Modul nur auf verwaltete Anforderungen reagieren soll.
Klicken Sie auf OK.
Konfiguration
Sie konfigurieren das <modules>
-Element auf Serverebene in der Datei ApplicationHost.config und auf der Anwendungsebene in der Datei Web.config.
Attribute
Attribut | Beschreibung |
---|---|
runAllManagedModulesForAllRequests |
Optionaler boolescher Wert. True, wenn alle verwalteten Module alle Anforderungen verarbeiten können, auch wenn die Anforderung nicht für verwaltete Inhalte war; andernfalls false. Hinweis: In ASP.NET Websites musste der Wert von runAllManagedModulesForAllRequests zuvor auf true festgelegt werden, um das Routing zu unterstützen. Nachdem IIS 7 jedoch mit einem Service Pack aktualisiert wurde, kann der Wert runAllManagedModulesForAllRequests beim Arbeiten mit ASP.NET Routing auf false festgelegt oder weggelassen werden. Weitere Informationen finden Sie unter ASP.NET Routing auf der MSDN-Website.Der Standardwert ist false . |
runManagedModulesForWebDavRequests |
Optionaler boolescher Wert. True, wenn verwaltete Module WebDAV-Anforderungen verarbeiten können; andernfalls false. Der Standardwert ist false . |
Untergeordnete Elemente
Element | Beschreibung |
---|---|
add |
Optionales Element. Fügt der Auflistung von Modulen für IIS-Manager ein Modul hinzu. |
clear |
Optionales Element. Entfernt alle Verweise auf Module aus der Modulauflistung. |
remove |
Optionales Element. Entfernt einen Verweis auf ein Modul aus der Modulauflistung. |
Konfigurationsbeispiel
Im Beispiel wird ein Modul für eine Webanwendung konfiguriert, die im integrierten IIS 7-Modus ausgeführt wird.
<configuration>
<system.webServer>
<modules>
<add name="Header" type="Contoso.ShoppingCart.Header"/>
</modules>
</system.webServer>
</configuration>
Beispielcode
Hinweis
Die Beispiele in diesem Dokument veranschaulichen die Verwendung einer Assembly mit verwaltetem Code, die im globalen .NET-Assemblycache (GAC) gespeichert wurde. Bevor Sie den Code in diesen Beispielen zum Bereitstellen eigener Assemblys verwenden, müssen Sie die Assemblyinformationen aus dem GAC abrufen. Führen Sie dazu die folgenden Schritte aus:
- Öffnen Sie im Windows-Explorer den Pfad C:\Windows\assembly, wobei C: Ihr Betriebssystemlaufwerk ist.
- Suchen Sie Ihre Assembly.
- Klicken Sie mit der rechten Maustaste auf die Assembly, und klicken Sie auf Eigenschaften.
- Kopieren Sie den Wert Kultur; Beispiel: Neutral.
- Kopieren Sie die Version-Nummer, z. B. 1.0.0.0.
- Kopieren Sie den Wert Public Key Token, z. B. 426f62526f636b73.
- Klicken Sie auf Abbrechen.
Die folgenden Codebeispiele ermöglichen ein verwaltetes Modul für eine Website mit dem Namen Contoso. Die Name-Eigenschaft definiert den Namen CartHeader für das Modul, die Typ-Eigenschaft definiert den verwalteten Typ für das Modul, die preCondition-Eigenschaft definiert, dass IIS das Modul nur für verwaltete Anforderungen aufruft.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/modules /+"[name='CartHeader',type='Contoso.ShoppingCart.Header',preCondition='managedHandler']"
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.GetWebConfiguration("Contoso");
ConfigurationSection modulesSection = config.GetSection("system.webServer/modules");
ConfigurationElementCollection modulesCollection = modulesSection.GetCollection();
ConfigurationElement addElement = modulesCollection.CreateElement("add");
addElement["name"] = @"CartHeader";
addElement["type"] = @"Contoso.ShoppingCart.Header";
addElement["preCondition"] = @"managedHandler";
modulesCollection.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.GetWebConfiguration("Contoso")
Dim modulesSection As ConfigurationSection = config.GetSection("system.webServer/modules")
Dim modulesCollection As ConfigurationElementCollection = modulesSection.GetCollection
Dim addElement As ConfigurationElement = modulesCollection.CreateElement("add")
addElement("name") = "CartHeader"
addElement("type") = "Contoso.ShoppingCart.Header"
addElement("preCondition") = "managedHandler"
modulesCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var modulesSection = adminManager.GetAdminSection("system.webServer/modules", "MACHINE/WEBROOT/APPHOST/Contoso");
var modulesCollection = modulesSection.Collection;
var addElement = modulesCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "CartHeader";
addElement.Properties.Item("type").Value = "Contoso.ShoppingCart.Header";
addElement.Properties.Item("preCondition").Value = "managedHandler";
modulesCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set modulesSection = adminManager.GetAdminSection("system.webServer/modules", "MACHINE/WEBROOT/APPHOST/Contoso")
Set modulesCollection = modulesSection.Collection
Set addElement = modulesCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "CartHeader"
addElement.Properties.Item("type").Value = "Contoso.ShoppingCart.Header"
addElement.Properties.Item("preCondition").Value = "managedHandler"
modulesCollection.AddElement addElement
adminManager.CommitChanges()