Problembehandlung für fehlgeschlagene Anforderungen mithilfe der Ablaufverfolgung in IIS 8.5
Gilt für: Internetinformationsdienste 8.5
Einführung
Die anforderungsbasierte Ablaufverfolgung ist sowohl auf eigenständigen IIS-Servern als auch auf Microsoft Azure-Websites (WAWS) verfügbar. Wenn Sie das aufgetretene Problem reproduzieren können, bietet die anforderungsbasierte Ablaufverfolgung eine Möglichkeit, um zu ermitteln, was genau mit Ihren Anforderungen geschieht und warum es auftritt. Probleme wie schlechte Leistung bei einigen Anforderungen, Authentifizierungsfehler bei anderen Anforderungen oder der Server 500-Fehler von ASP oder ASP.NET können oft schwierig zu beheben sein, es sei denn, Sie haben die Ablaufverfolgung des Problems erfasst, wenn es auftritt. In diesem Artikel wird die Ablaufverfolgung fehlgeschlagener Anforderungen auf IIS-Server erläutert. Informationen dazu, wie Sie dies mit Microsoft Azure-Websites durchführen, finden Sie unter Problembehandlung für eine App in Azure App Service mit Visual Studio.
Die Ablaufverfolgung fehlgeschlagener Anforderungen ist so konzipiert, dass die Ablaufverfolgungsereignisse für eine Anforderung gepuffert und nur dann auf den Datenträger geleert werden, wenn die Anforderung fehlschlägt, wo Sie die Definition des Fehlers angeben. Wenn Sie wissen möchten, warum Ihre Anforderungen einen bestimmten HTTP-status Code zurückgeben, z. B. 401 oder 404, oder wenn die Verarbeitung einer Anforderung eine Weile dauert oder nicht reagiert, können Sie die Ablaufverfolgung für Anforderungsfehler verwenden.
In diesem Artikel werden folgende Aufgaben erläutert:
- Aktivieren des Moduls "Ablaufverfolgung fehlgeschlagener Anforderungen".
- Konfigurieren der Protokolldateisemantik für die Ablaufverfolgung fehlgeschlagener Anforderungen.
- Definieren der URL, für die Ablaufverfolgungen für fehlgeschlagene Anforderungen beibehalten werden sollen, einschließlich Fehlerdefinitionen und Zu verfolgende Bereiche.
- Generieren der Fehlerbedingung und Anzeigen der resultierenden Ablaufverfolgung.
Voraussetzungen
Installieren von IIS
Installieren Sie IIS 8.5, bevor Sie die in diesem Artikel beschriebenen Aufgaben ausführen können. Navigieren Sie zu , http://localhost/
und überprüfen Sie, ob der Begrüßungsbildschirm für Internetinformationsdienste angezeigt wird. Wenn IIS nicht installiert ist, finden Sie installationsanweisungen unter Installieren von IIS 8.5 unter Windows Server 2012 R2. Stellen Sie bei der Installation von IIS sicher, dass Sie auch die folgenden Features installieren:
- ASP.NET 3.5 (unter Webserver (IIS)/Web Server/Application Development Features/ASP.NET 3.5)
- ASP.NET 4.5 (unter Webserver (IIS)/Web Server/Application Development Features/ASP.NET 4.5)
- Ablaufverfolgung (unter Webserver (IIS)/Webserverintegrität/und -diagnose – Ablaufverfolgung)
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.
Hinweis
Wenn Sie in der Gruppe "Administratoren" sind, werden Ihnen standardmäßig keine Administratorrechte gewährt. Sie müssen Anwendungen als Administrator ausführen, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und Als Administrator ausführen auswählen.
Erstellen einer Sicherung
Erstellen Sie eine Sicherung der Konfigurationsdateien, bevor Sie die folgenden Aufgaben ausführen:
Wählen Sie gleichzeitig die Windows-Logo-Taste und die X-Taste aus, wählen Sie Eingabeaufforderung (Admin) und dann Ja aus.
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Dieser Befehl erstellt einen CleanInstall-Ordner mit Sicherungskonfigurationsdateien in %windir%\system32\inetsrv\backup.
Erstellen von Beispielinhalten
Navigieren Sie zu %systemdrive%\inetpub\wwwroot.
Verschieben Sie den Inhalt an einen sicheren Speicherort (falls Sie den vorhandenen Inhalt wiederherstellen möchten), oder löschen Sie ihn.
Erstellen Sie eine leere Datei, und benennen Sie sie test.asp.
Navigieren Sie in der Eingabeaufforderung zur test.asp Datei in \inetpub\wwwroot.
Fügen Sie in der test.asp-Datei 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 Aufgaben in diesem Artikel deaktiviert.
Führen Sie die folgenden Schritte aus, um ASP zu deaktivieren:
Öffnen Sie den IIS-Manager, und wählen Sie den Server aus.
Doppelklicken Sie auf ISAPI- und CGI-Einschränkungen.
Wählen Sie im Bereich ISAPI- und CGI-Einschränkungendie Option Active Server Pages aus. Wählen Sie im Bereich Aktionen die Option Verweigern aus, um ASP zu deaktivieren. Active Server Pages wird als Nicht zulässig angezeigt.
Aktivieren der Ablaufverfolgung für fehlgeschlagene Anforderungen
Nachdem Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen aktiviert haben, müssen Sie den Pfad der Protokolldateien konfigurieren. In diesem Abschnitt aktivieren Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen für die Standardwebsite, geben an, wo die Protokolldateien gespeichert werden sollen, und konfigurieren dann den Fehler, für den Fehlerprotokolle generiert werden sollen.
Schritt 1: Aktivieren der Ablaufverfolgung für fehlgeschlagene Anforderungen für den Standort und Konfigurieren des Protokolldateiverzeichnisses
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\windows\system32\inetsrv.
Führen Sie aus
inetmgr
, um den IIS-Manager zu öffnen.Erweitern Sie im Bereich Connections 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 Einstellungen für die Ablaufverfolgung von Anforderungsfehlern auf Website bearbeiten 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 Anforderungsablaufverfolgung ist jetzt für die Standardwebsite aktiviert. Überprüfen Sie die Datei %windir%\system32\inetsrv\config\applicationHost.config , um sicherzustellen, dass die Konfiguration wie folgt aussieht:
<system.applicationHost> <!-- other system configuration --> <sites> <site name="Default Web Site" id="1"> <!-- other site configuration --> <traceFailedRequestsLogging enabled="true" /> </site> <!-- site & app defaults --> <!-- other sites configuration --> </sites> <!-- other system configuration --> </system.applicationHost>
Schritt 2: Konfigurieren Ihrer Fehlerdefinitionen
Konfigurieren Sie in diesem Schritt die Fehlerdefinitionen für Ihre URL, einschließlich der zu verfolgenden Bereiche. Sie behandeln eine Problembehandlung für einen 404.2-status Code, der von IIS für alle Anforderungen an Erweiterungen zurückgegeben wird, die noch nicht aktiviert wurden. Es hilft Ihnen zu bestimmen, welche bestimmten Erweiterungen Sie aktivieren müssen. Weitere Informationen finden Sie unter HTTP-status-Codes in IIS.
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\windows\system32\inetsrv.
Führen Sie aus
inetmgr
, um den IIS-Manager zu öffnen.Erweitern Sie im Bereich Connections den Computernamen, erweitern Sie Websites, und wählen Sie dann Standardwebsite aus.
Doppelklicken Sie auf Ablaufverfolgungsregeln für fehlgeschlagene Anforderungen.
Wählen Sie im Bereich Aktionen die Option Hinzufügen... aus.
Wählen Sie im Assistenten Zum Hinzufügen fehlerhafter Anforderungsablaufverfolgungsregeln auf der Seite Inhalt für Ablaufverfolgung angeben die Option Alle Inhalte (*) und dann Weiter aus.
Aktivieren Sie auf der Seite Ablaufverfolgungsbedingungen definieren das Kontrollkästchen Statuscodes, und geben Sie 404.2 als status Code ein, der nachverfolgt werden soll.
Wählen Sie Weiter aus.
Aktivieren Sie auf der Seite Ablaufverfolgungsanbieter auswählen unter Anbieter das Kontrollkästchen WWW-Server , und deaktivieren Sie alle anderen Kontrollkästchen. Aktivieren Sie unter Bereiche das Kontrollkästchen Sicherheit , und deaktivieren Sie alle anderen Kontrollkästchen.
Das von Ihnen generierte Problem führt dazu, dass ein Ablaufverfolgungsereignis für Sicherheitsfehler ausgelöst wird. Im Allgemeinen können Probleme mit der Authentifizierung und Autorisierung (einschließlich Problemen mit der ISAPI-Einschränkungsliste) mithilfe der Konfiguration des Bereichs WWW-Server – Sicherheit für die Ablaufverfolgung diagnostiziert werden. Da das FREB.xsl-Stylesheet jedoch Fehler und Warnungen hervorhebt, können Sie weiterhin die Standardkonfiguration verwenden, um alle Ereignisse in allen Bereichen und Anbietern zu protokollieren.
Wählen Sie unter Ausführlichkeitdie Option Ausführlich aus.
Hinweis
Wenn Sie den Rollendienst "Ablaufverfolgung" installieren, installiert IIS standardmäßig die Ablaufverfolgungsanbieter für WWW-Server, ASP und ISAPI-Erweiterung. Wenn Sie ASP.NET 2.0 oder höher installieren, fügt IIS automatisch den ASPNET-Ablaufverfolgungsanbieter hinzu. Zusätzliche Anbieter werden durch das ARR-Installationspaket (Application Request Routing) installiert, das auch das URL-Rewrite-Modul, die Webfarmverwaltung und den externen Cache installiert. Sie können weitere Ablaufverfolgungsanbieter hinzufügen, indem Sie das
<add>
-Element innerhalb des<traceProviderDefinitions>
-Elements verwenden.Wählen Sie Fertig stellen aus.
Die folgende Definition für die Standardwebsite wird angezeigt:
IIS-Manager schreibt die Konfiguration mithilfe eines
<location>
-Tags in die%systemdrive%\inetpub\wwwroot\web.config
Datei. Die Konfiguration sollte wie folgt aussehen:<configuration> <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> </configuration>
Testen und Anzeigen der Protokolldatei für Fehleranforderungen
In diesem Abschnitt können Sie eine fehlgeschlagene Anforderung generieren und das resultierende Ablaufverfolgungsprotokoll anzeigen. Sie haben IIS bereits so konfiguriert, dass Ablaufverfolgungsprotokolle für http://localhost/*.asp
Anforderungen erfasst werden, die mit dem HTTP-Antwortcode 404.2 fehlschlagen. Überprüfen Sie nun, ob es funktioniert.
Schritt 1: Generieren eines Fehlers und der Protokolldatei der Fehleranforderung
Öffnen Sie ein neues Internet Explorer Fenster.
Geben Sie ein, und drücken Sie die
http://localhost/test.asp
EINGABETASTE. Die Fehlermeldung "HTTP-Fehler 404.2 – Nicht gefunden" wird angezeigt.
Schritt 2: Anzeigen der Protokolldatei der Fehleranforderung
Nachdem Sie nun eine fehlgeschlagene Anforderung generiert haben, öffnen Sie Windows Explorer, und navigieren Sie zu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Hinweis
Wenn IIS die Protokolldatei der fehlgeschlagenen Anforderung schreibt, wird eine Datei pro fehlgeschlagener Anforderung geschrieben. Ein freb.xsl-Stylesheet wird ebenfalls geschrieben, eines pro Verzeichnis. Dies ist hilfreich, wenn Sie die resultierenden Protokolldateien für Fehleranforderungen 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 Öffnen mit ->Internet Explorer aus. Wenn Sie zum ersten Mal eine Ablaufverfolgungsdatei für fehlgeschlagene Anforderungen öffnen, müssen Sie about:internet der Liste der vertrauenswürdigen Websites hinzufügen, da die erweiterte Sicherheitskonfiguration von Internet Explorer standardmäßig aktiviert ist. Wenn ja, sehen Sie Folgendes:
Fügen Sie im Dialogfeld Internet Explorer about:internet der Liste der vertrauenswürdigen Websites hinzu, indem Sie die folgenden Schritte ausführen:
- Wählen Sie das Menü Extras und dann Internetoptionen aus.
- Klicken Sie auf die Registerkarte Sicherheit.
- Wählen Sie Vertrauenswürdige Zone und dann Websites aus.
- Dadurch kann die XSL funktionieren.
Nach dem Hinzufügen von about:internet zur Liste der vertrauenswürdigen Websites wird eine Seite Anforderungszusammenfassung angezeigt:
Oben wird eine Zusammenfassung der fehlgeschlagenen Anforderung protokolliert, wobei die Tabelle Fehler & Warnungen alle Ereignisse
WARNING
mit dem Schweregrad ,ERROR
oderCRITICAL ERROR
identifiziert. In diesem Beispiel ist derWARNING
Schweregrad auf ISAPI RESTRICTION zurückzuführen. Das Bild, das Sie laden wollten, war %windir%\system32\inetsrv\asp.dll.Öffnen Sie die XML-Rohdatei direkt mithilfe eines Text-Editors, und sehen Sie sich den Inhalt des Ereignisses an.
Zusammenfassung
Sie haben zwei Aufgaben abgeschlossen: Konfigurieren der Ablaufverfolgung für fehlgeschlagene Anforderungen, um Ablaufverfolgungen für jede Anforderung zu erfassen, die IIS mit einem 404.2-status-Code zurückgibt, und Überprüfen, ob IIS die Ablaufverfolgung für Ihre Anforderung erfasst hat. Sie haben auch überprüft, dass die freb.xml Protokolldatei keine anderen Anforderungen als die mit einem 404.2-Rückgabecode enthielt. Als Sie die Fehlerprotokolldatei abgerufen haben, haben Sie festgestellt, dass die Ursache des Fehlers darin bestand, dass die Erweiterung für diese Anforderung deaktiviert wurde. Sie können andere Nicht-HTML-Seiten (z. B. .gif- oder .jpg-Dateien) ausprobieren und beachten, dass diese Ablaufverfolgungen in der Protokolldatei nicht hinzugefügt werden. Sie können dieses Ereignis auch einfach in 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 ihrer Sicherung
Nachdem Sie die Aufgaben in diesem Artikel abgeschlossen haben, können Sie die Sicherung der Konfiguration wiederherstellen. Führen Sie den folgenden Befehl mit Administratorbenutzerrechten aus:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall