Problembehandlung bei fehlgeschlagenen Anforderungen mithilfe der Ablaufverfolgung in IIS 7
Gilt für: Internetinformationsdienste 7.0
Notiz
Dieser Artikel bezieht sich auf IIS 7.0. Informationen zu neueren Versionen finden Sie unter Problembehandlung bei fehlgeschlagenen Anforderungen mithilfe der Ablaufverfolgung in IIS 8.5.
Die anforderungsbasierte Ablaufverfolgung ist sowohl in eigenständigen IIS-Servern als auch in Azure-Web-Apps verfügbar und bietet eine Möglichkeit, zu bestimmen, was genau mit Ihren Anforderungen geschieht und warum, wenn Sie das Problem reproduzieren können, das Sie haben. Probleme wie eine schlechte Leistung bei einigen Anforderungen oder authentifizierungsbezogene Fehler in anderen Anforderungen oder der Fehler „Server 500“ von ASP oder ASP.NET können häufig schwierig zu beheben sein – es sei denn, Sie haben den Verlauf des Problems aufgezeichnet, wenn es auftritt. In diesem Artikel wird die Ablaufverfolgung von Fehlgeschlagenen Anforderungen auf IIS Server erläutert. Informationen dazu, wie Sie dies mit Azure Web-Apps tun können, finden Sie unter Problembehandlung für eine App in Azure App Service mit Visual Studio.
Fehleranforderungsablaufverfolgung wurde entwickelt, um die Ablaufverfolgungsereignisse für eine Anforderung zu puffern und sie nur auf den Datenträger zu leeren, wenn die Anforderung fehlschlägt, wo Sie die Definition des "Fehlers" angeben. Wenn Sie wissen möchten, warum 404.2 Fehlermeldungen angezeigt werden oder die Anforderung hängend gestartet wird, verwenden Sie die Ablaufverfolgung fehlgeschlagener Anforderungen.
Zu den Aufgaben, die in diesem Artikel erläutert werden, gehören:
- Aktivieren des Moduls "Fehlgeschlagene Anforderungsablaufverfolgung".
- Konfigurieren der Protokolldateisemantik für fehlgeschlagene Anforderungsablaufverfolgung.
- Definieren der URL, für die Fehleranforderungsablaufverfolgungen beibehalten werden sollen, einschließlich Fehlerdefinitionen und Bereiche zur Ablaufverfolgung.
- Generieren der Fehlerbedingung und Anzeigen der resultierenden Ablaufverfolgung.
Voraussetzungen
Installieren von IIS
Sie müssen IIS 7 oder höher installieren, bevor Sie die Aufgaben in diesem Artikel ausführen können. Navigieren Sie zu http://localhost/
, um festzustellen, ob IIS installiert ist. Wenn IIS nicht installiert ist, finden Sie Installationsanweisungen unter IIS unter Windows Server 2008 . Stellen Sie beim Installieren von IIS sicher, dass Sie auch die folgenden Features installieren:
- ASP.NET (unter world Wide Web Services - Application Development Features - ASP.NET)
- Ablaufverfolgung (unter World Wide Web Services - Health and Diagnostics - Tracing)
Melden Sie sich als Administrator an
Stellen Sie sicher, dass das Konto, das Sie für die Anmeldung verwenden, das Administratorkonto ist oder sich in der Gruppe „Administratoren“ befindet.
Notiz
Wenn Sie sich in der Gruppe "Administratoren" befinden, erhalten Sie standardmäßig keine vollständigen Administratorbenutzerrechte. Sie müssen Anwendungen als Administrator ausführen, die Sie ausführen können, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und "Als Administrator ausführen" auswählen.
Erstellen einer Sicherung
Sie müssen eine Sicherung der Konfiguration vornehmen, bevor Sie die Aufgaben in den folgenden Abschnitten ausführen.
Führen Sie die folgenden Schritte aus, um eine Sicherung der Konfiguration zu erstellen:
Wählen Sie ">Alle Programme>starten" aus.
Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung, und wählen Sie dann "Als Administrator ausführen" aus.
Führen Sie in der Eingabeaufforderung folgenden Befehl aus:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Erstellen von Beispielinhalten
Navigieren Sie zu
%systemdrive%\inetpub\wwwroot
.Verschieben Sie die Inhalte an einen sicheren Speicherort (für den Fall, dass Sie die vorhandenen Inhalte wiederherstellen möchten) oder löschen Sie sie.
Erstellen Sie eine leere Datei, und nennen Sie sie test.asp.
Navigieren Sie in der Eingabeaufforderung zur test.asp Datei in "\inetpub\wwwroot".
Fügen Sie in der datei test.asp den folgenden Inhalt ein:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
Deaktivieren von ASP
ASP muss für diese Aufgabe deaktiviert sein. ASP ist nur als Beispiel und für die Zwecke der Aufgaben in diesem Artikel deaktiviert.
So deaktivieren Sie ASP
Öffnen Sie das Dialogfeld Internetinformationsdienste-Manager.
Doppelklicken Sie auf ISAPI- und CGI-Einschränkungen.
Wählen Sie Aktive Serverseiten aus. Wählen Sie im Bereich "Aktionen " die Option "Ablehnen " aus, um ASP zu deaktivieren.
Aktivieren Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen.
Nachdem Sie die Ablaufverfolgung fehlgeschlagener Anforderungen aktiviert haben, müssen Sie konfigurieren, wo sich die Protokolldateien befinden. In dieser Aufgabe aktivieren Sie die Fehleranforderungsablaufverfolgung für die Standardwebsite und geben an, wo die Protokolldateien abgelegt werden sollen. Anschließend konfigurieren Sie den Fehler, für den Fehlerprotokolle generiert werden sollen.
Schritt 1: Aktivieren der Anforderungsablaufverfolgung für die Website und Konfigurieren des Protokolldateiverzeichnisses
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\windows\system32\inetsrv.
Führen Sie den Befehl zum Öffnen des IIS-Managers aus
inetmgr
.Erweitern Sie im Bereich "Verbindungen" den Computernamen, erweitern Sie "Websites", und wählen Sie dann "Standardwebsite" aus.
Wählen Sie im Bereich "Aktionen" unter "Konfigurieren" die Option "Ablaufverfolgung fehlgeschlagener Anforderungen" aus.
Konfigurieren Sie im Dialogfeld Bearbeiten der Website-Einstellungen für die Ablaufverfolgung fehlgeschlagener Anforderungen Folgendes:
- Aktivieren Sie das Kontrollkästchen "Aktivieren ".
- Behalten Sie die Standardwerte für die anderen Einstellungen bei.
Wählen Sie OK aus.
Die Protokollierung der Fehleranforderungsablaufverfolgung ist jetzt für die Standardwebsite aktiviert. Überprüfen Sie die Datei „%windir%\system32\inetsrv\config\applicationHost.config“, um zu bestätigen, dass die Konfiguration wie folgt aussieht:
<system.applicationHost>
<sites>
<!-- site & app defaults -->
<site name="Default Web Site" id="1">
<!-- other site configuration -->
<traceFailedRequestsLogging enabled="true" />
</site>
</sites>
</system.applicationHost>
Schritt 2: Konfigurieren der Fehlerdefinitionen
In diesem Schritt konfigurieren Sie die Fehlerdefinitionen für Ihre URL, einschließlich der Bereiche, die nachverfolgt werden sollen. Sie behandeln eine Problembehandlung für eine 404.2, die von IIS für alle Anforderungen an Erweiterungen zurückgegeben wird, die noch nicht aktiviert wurden. Auf diese Weise können Sie ermitteln, welche bestimmten Erweiterungen Sie aktivieren müssen.
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\windows\system32\inetsrv.
Führen Sie den Befehl zum Öffnen des IIS-Managers aus
inetmgr
.Erweitern Sie im Bereich "Verbindungen" den Computernamen, erweitern Sie "Websites", und wählen Sie dann "Standardwebsite" aus.
Doppelklicken Sie auf Regeln für die Ablaufverfolgung fehlgeschlagener Anforderungen.
Klicken Sie auf Fertigstellen.
Wählen Sie im Bereich "Aktionen" die Option "Hinzufügen" aus.
Wählen Sie im Assistenten zum Hinzufügen einer Regel für die Ablaufverfolgung fehlgeschlagener Anforderungen auf der Seite Inhalt zur Ablaufverfolgung angeben den Eintrag Alle Inhalte (*) aus. Wählen Sie Weiter aus.
Aktivieren Sie auf der Seite "Ablaufverfolgungsbedingungen definieren" das Kontrollkästchen "Statuscode(n) ", und geben Sie "404.2 " als Statuscode zur Ablaufverfolgung ein.
Wählen Sie Weiter aus.
Aktivieren Sie auf der Seite "Ablaufverfolgungsanbieter auswählen" unter "Anbieter" das Kontrollkästchen "WWW-Server ". Aktivieren Sie unter "Bereiche" das Kontrollkästchen "Sicherheit ", und deaktivieren Sie alle anderen Kontrollkästchen.
Das Problem, das Sie generieren, führt dazu, dass ein Ereignis der Sicherheitsfehlerablaufverfolgung ausgelöst wird.The problem that you're generating causes a security error trace event to be thrown. Im Allgemeinen können Probleme mit der Authentifizierung und Autorisierung (einschließlich ISAPI-Einschränkungslistenproblemen) mithilfe der KONFIGURATION des WWW-Servers – Sicherheitsbereichs für die Ablaufverfolgung diagnostiziert werden. Da jedoch das FREB.xsl Stylesheet Fehler und Warnungen hervorhebungen hilft, können Sie weiterhin die Standardkonfiguration verwenden, um alle Ereignisse in allen Bereichen und Anbietern zu protokollieren. Wählen Sie unter Ausführlichkeit die Option Ausführlich aus.
Klicken Sie auf Fertigstellen. Die folgende Definition für die Standardwebsite sollte angezeigt werden:
Der IIS-Manager schreibt die Konfiguration in die Datei %windir%\system32\inetsrv\config\applicationHost.config
. Dies geschieht mithilfe eines <location>
-Tags. Die Konfiguration sollte wie folgt aussehen:
<location path="Default Web Site">
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="WWW Server" areas="Security" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="404.2" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
</location>
Testen und Anzeigen der Fehleranforderungsprotokolldatei
In dieser Aufgabe generieren Sie eine fehlgeschlagene Anforderung und zeigen das resultierende Ablaufverfolgungsprotokoll an. Sie haben IIS bereits so konfiguriert, dass Ablaufverfolgungsprotokolle für http://localhost/*.asp
-Anforderungen erfasst werden, die mit einem HTTP-Antwortcode von 404.2 fehlschlagen. Überprüfen Sie nun, ob es funktioniert.
Schritt 1: Generieren eines Fehlers und der Protokolldatei der Fehleranforderungsanforderung
Öffnen Sie ein neues Internet Explorer-Fenster.
Geben Sie die folgende Adresse ein:
http://localhost/test.asp
.Es wird ein Fehler "HTTP-Fehler 404.2 - Nicht gefunden" angezeigt.
Schritt 2: Anzeigen der Protokolldatei der Fehleranforderungsanforderung
Nachdem Sie nun eine fehlgeschlagene Anforderung generiert haben, öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Führen Sie Start aus, um ein Internet Explorer-Fenster aus dem Verzeichnis zu starten.
Beachten Sie hier ein paar Dinge: Wenn IIS die Protokolldatei der fehlgeschlagenen Anforderung schreibt, schreibt es eine Datei pro fehlgeschlagener Anforderung. Pro Verzeichnis wird auch ein freb.xsl-Stylesheet geschrieben. Dies hilft, wenn Sie die resultierenden Fehleranforderungsprotokolldateien anzeigen (z . B. fr000001.xml in diesem Beispiel).
Klicken Sie mit der rechten Maustaste auf die Protokolldatei für den Fehler 404.2, und wählen Sie "Mit>Internet Explorer öffnen" aus. Wenn Sie zum ersten Mal eine Datei für die Ablaufverfolgung fehlgeschlagener Anforderungen öffnen, müssen Sie "about:internet" zur Liste der vertrauenswürdigen Websites hinzufügen, da die erweiterte Sicherheitskonfiguration von Internet Explorer standardmäßig aktiviert ist. Wenn ja, wird Folgendes angezeigt:
Wählen Sie im Dialogfeld Internet Explorer die Option "Hinzufügen..." aus, um "about:internet" zur Liste der vertrauenswürdigen Websites hinzuzufügen. Dadurch kann XSL funktionieren. Nach dem Hinzufügen von about:internet zur Liste der vertrauenswürdigen Websites wird Folgendes angezeigt:
Eine Zusammenfassung der fehlgeschlagenen Anforderung wird oben protokolliert, wobei die Tabelle "Errors & Warnings" alle Ereignisse identifiziert, die WARNUNG, FEHLER oder KRITISCHER FEHLER im Schweregrad sind. In diesem Beispiel ist die WARNUNGsschweregrad auf ISAPI RESTRICTION zurückzuführen. Das Bild, das Sie laden wollten, war "%windir%\system32\inetsrv\asp.dll".
Öffnen Sie die unformatierte XML-Datei direkt mithilfe eines Text-Editors, und sehen Sie sich den Inhalt der einzelnen Ereignisse an.
Übersicht
Sie haben zwei Aufgaben abgeschlossen: konfigurierte Fehleranforderungsablaufverfolgung zum Erfassen von Ablaufverfolgungen für jede Anforderung, die IIS mit einem Statuscode 404.2 zurückgibt, und überprüft, ob IIS die Ablaufverfolgung für Ihre Anforderung erfasst hat. Sie haben auch überprüft, dass die freb.xml Protokolldatei keine anderen Anforderungen für die anforderungen enthält, die Sie vorgenommen haben, da die Anforderungen keinen 404.2-Rückgabecode haben. Wenn Sie die Fehlerprotokolldatei einsehen, stellen Sie fest, dass die Ursache des Fehlers darin liegt, dass die Erweiterung für diese Anforderung deaktiviert war. Sie können andere Nicht-HTML-Seiten (z. B. .gif- oder .jpg-Dateien) ausprobieren und beachten, dass die Protokolldatei diese Ablaufverfolgungen NICHT hinzugibt. Sie können dies auch einfach auf 404 ändern oder den Fehler erfassen, wenn die Anforderung länger als 30 Sekunden dauert, indem Sie das Feld timeTaken in Ihren failureDefinitions festlegen.
Wiederherstellen der Sicherung
Nachdem Sie die Aufgaben in diesem Artikel erledigt haben, können Sie das Backup der Konfiguration wiederherstellen. Führen Sie den folgenden Befehl mit Administratorrechten aus:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall