Websites und Webanwendungen hängen von der Verfügbarkeit von IIS-Anwendungspools ab. IIS-Anwendungspool wiederum hängen vom Windows-Prozessaktivierungsdienst (WAS) ab. Wenn WAS nicht ausgeführt wird oder während des Startens oder Herunterfahrens eines Anwendungspools Fehler auftreten, sind Websites und Webanwendungen möglicherweise nicht verfügbar.
Überprüfen der ausführbaren Datei für das automatische Herunterfahren
Eine vom Benutzer angegebene ausführbare Datei kann so konfiguriert werden, dass sie automatisch ausgeführt wird, wenn ein Anwendungspool vom WWW-Publishingdienst (W3SVC) heruntergefahren wird. Die ausführbare Datei kann z. B. den Datenverkehr für den Anwendungspool an einen anderen Server weiterleiten. Die Datei kann im IIS-Manager angegeben werden. Sie wird durch das Attribut autoShutdownExe im Abschnitt system.applicationHost/applicationPools/failure der Datei "ApplicationHost.config" dargestellt.
Wenn der Prozess autoShutdownExe nicht ausgeführt werden kann, stehen Ihnen u. a. folgende Lösungsmöglichkeiten zur Verfügung:
Überprüfen Sie, ob der Pfad und der Dateiname des Programms autoShutdownExe korrekt angegeben wurden.
Stellen Sie sicher, dass das Systemkonto über Berechtigungen für den Zugriff auf die und die Ausführung der Datei verfügt.
Stellen Sie sicher, dass das Programm unabhängig vom Herunterfahren eines Anwendungspools ausgeführt werden kann.
Überprüfen, ob der Pfad und der Dateiname korrekt angegeben wurden
Klicken Sie auf "Start", klicken Sie auf "Systemsteuerung", und klicken Sie dann auf "Verwaltung".
Klicken Sie mit der rechten Maustaste auf "Internetinformationsdienste (IIS)-Manager", und wählen Sie "Als Administrator ausführen" aus.
Erweitern Sie im Bereich "Verbindungen" den Servernamen.
Klicken Sie auf "Anwendungspools". Im mittleren Bereich wird eine Liste der Anwendungspools auf dem Server angezeigt.
Klicken Sie im mittleren Bereich auf den Anwendungspool, dessen ausführbare Datei für das Herunterfahren Sie überprüfen möchten.
Klicken Sie im Bereich "Aktionen" auf "Erweiterte Einstellungen". Das Dialogfeld "Erweiterte Einstellungen" wird angezeigt.
Führen Sie einen Bildlauf bis zum Abschnitt "Schutz für schnelle Fehler" durch.
Navigieren Sie zum Eintrag "Ausführbare Datei beim Herunterfahren", und überprüfen Sie den Pfad und den Dateinamen auf der rechten Seite. Stellen Sie sicher, dass der Pfad und der Dateiname korrekt sind.
Klicken Sie auf "OK".
Überprüfen der Zugriffssteuerungsliste für die ausführbare Datei für das Herunterfahren
Ö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 "start explorer" ein.
Navigieren Sie in Windows-Explorer zu der ausführbaren Datei für das Herunterfahren.
Klicken Sie mit der rechten Maustaste auf die Datei, und wählen Sie "Eigenschaften" aus. Das Eigenschaftendialogfeld für die ausführbare Datei wird angezeigt.
Klicken Sie auf die Registerkarte "Sicherheit".
Stellen Sie sicher, dass im Dialogfeld "Gruppen- oder Benutzernamen:" SYSTEM angezeigt wird. Wenn nicht, klicken Sie auf "Bearbeiten", um das Systemkonto hinzuzufügen.
Stellen Sie im Dialogfeld "Berechtigungen für SYSTEM" sicher, dass das Systemkonto mindestens über die Berechtigungen Lesen und Ausführen für die ausführbare Datei beim Herunterfahren verfügt.
Sicherstellen, dass das Programm unabhängig ausgeführt werden kann
Führen Sie einen Testlauf des ausführbaren Programms getrennt von einem Herunterfahren des Anwendungspools aus. Wenn der Prozess unabhängig vom Herunterfahren eines Anwendungspools ausgeführt werden kann, sollte er ordnungsgemäß ausgeführt werden, wenn der Anwendungspool durch WAS automatisch deaktiviert wird.
Target | Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool |
Category | Alert |
Enabled | True |
Alert Generate | False |
Remotable | True |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.Server.IIS.10.0.WarningAndErrorEventProvider | Default |
Filter | ConditionDetection | Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool.EventFilter | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.10.0.GenerateAlertAction.SuppressedByDescription | Default |
<Rule ID="Microsoft.Windows.InternetInformationServices.10.0.WAS.did.not.run.the.automatic.shutdown.executable.for.application.pool" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.Windows.Server.IIS.10.0.WarningAndErrorEventProvider">
<LogName>System</LogName>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool.EventFilter">
<Expression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(5054|5091)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-WAS</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.10.0.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.10.0.WAS.did.not.run.the.automatic.shutdown.executable.for.application.pool.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>