Internetinformationsdienste (IIS) 8 ermöglicht Entwicklern die problemlose Konfiguration von systemeigenen und verwalteten Codemodulen zum Verarbeiten von an den Webserver gerichteten Anforderungen. Damit die Module von Arbeitsprozessen geladen werden können, müssen sie ordnungsgemäß konfiguriert werden. Für eine ordnungsgemäße Modulkonfiguration muss ein Modul einen eindeutigen Namen sowie einen gültigen Typ oder Pfad aufweisen. Bei verwalteten Modulen kann angegeben werden, ob sie nur für Anforderungen an ASP.NET-Anwendungen oder verwaltete Handler aufgerufen werden sollen. Die Festlegung dieser Einstellung kann zu einer Leistungsoptimierung führen.
Korrigieren der Vorbedingungen für ein Modul
Moduleinträge weisen ein optionales Attribut "preCondition" auf, das Bedingungen für das zu ladende Modul enthalten kann. Beispielsweise kann mit dem Attribut "preCondition" angegeben werden, dass IIS das Modul nur für Anwendungspools, die im integrierten Modus ausgeführt werden, nur für Anwendungen, die im ISAPI-Modus ausgeführt werden, oder nur für Anwendungen, die eine bestimmte .NET Framework-Version verwenden, laden soll. Die letzte Einstellung ermöglicht die Verwendung einzelner Versionen des verwalteten Moduls für Anwendungspools, die verschiedenen Versionen der CLR-Laufzeit verwenden.
Nachfolgend finden Sie ein Beispiel aus dem Abschnitt "globalModules" der Datei "ApplicationHost.config" eines Moduleintrags, für den ein Attribut "preCondition" festgelegt ist:
<globalModules>
<add name="ManagedEngine"
image="%Windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll"
preCondition="integratedMode,runtimeVersionv2.0,bitness32"
/>
</globalModules>
Vor dem Laden der einzelnen Module wertet der Server die Vorbedingung aus, sofern eine solche in der Konfiguration vorhanden ist. Wenn eine der Vorbedingungen für das Laden "false" zurückgibt, wird das Modul nicht geladen.
So lösen Sie dieses Problem
Sichern Sie die Datei "ApplicationHost.config". Informationen hierzu finden Sie in Abschnitt A.
Suchen Sie das Attribut preCondition des Moduls, und korrigieren Sie es. Stellen Sie sicher, dass es korrekt konfiguriert ist und mit den Merkmalen des Anwendungspools oder der Arbeitsprozesse übereinstimmt, von denen das Modul verwendet wird. Informationen zum Suchen des Attributs finden Sie in Abschnitt B.
Nachdem die Vorbedingungen korrigiert wurden, sollte das Modul erfolgreich geladen werden.
Sichern der Datei "ApplicationHost.config"
So sichern Sie die Datei "ApplicationHost.config"
Öffnen Sie ein Eingabeaufforderungsfenster mit erhöhten Rechten. Klicken Sie auf "Start", zeigen Sie auf "Alle Programme", klicken Sie auf "Zubehör", klicken Sie mit der rechten Maustaste auf "Eingabeaufforderung", und klicken Sie dann auf "Als Administrator ausführen".
Wechseln Sie zum Verzeichnis "%Windir%\system32\inetsrv".
Geben Sie "appcmd add backup Sicherungsname ein, um die Datei "ApplicationHost.config" zu sichern.
Ein Verzeichnis mit dem von Ihnen angegebenen Sicherungsnamen wird unter dem Verzeichnis "%Windir%\system32\inetsrv\backup" erstellt. Wenn Sie keinen Namen angeben, generiert "Appcmd.exe" automatisch unter Verwendung des aktuellen Datums und der aktuellen Uhrzeit einen Verzeichnisnamen.
Navigieren zum Moduleintrag in der Datei "ApplicationHost.config"
So navigieren Sie zum Moduleintrag in der Datei "ApplicationHost.config"
Öffnen Sie ein Eingabeaufforderungsfenster mit erhöhten Rechten. Klicken Sie auf "Start", zeigen Sie auf "Alle Programme", klicken Sie auf "Zubehör", klicken Sie mit der rechten Maustaste auf "Eingabeaufforderung", und klicken Sie dann auf "Als Administrator ausführen".
Geben Sie "cd %Windir%\system32\inetsrv\config" ein.
Geben Sie "notepad applicationHost.config" ein.
Suchen Sie in Editor unter dem Abschnitt "system.webServer" nach dem Abschnitt "globalModules".
Wechseln Sie zu dem Eintrag, in dem das Attribut "preCondition" enthalten ist, und ändern Sie es bei Bedarf.
Speichern Sie die Datei "ApplicationHost.config", und beenden Sie Editor.
Weitere Informationen zum Abschnitt "globalModules" finden Sie unter IIS 8: "add"-Element für "globalModules" (IIS-Einstellungsschema) (möglicherweise in englischer Sprache).
Target | Microsoft.Windows.InternetInformationServices.6.2.WebServer |
Category | Alert |
Enabled | True |
Event_ID | 2296 |
Event Source | Microsoft-Windows-IIS-W3SVC-WP |
Alert Generate | False |
Remotable | True |
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription | Default |
<Rule ID="Microsoft.Windows.InternetInformationServices.6.2.Module.has.an.invalid.precondition" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.InternetInformationServices.6.2.WebServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-IIS-W3SVC-WP</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2296</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.6.2.Module.has.an.invalid.precondition.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>