Freigeben über


Problembehandlung bei fehlgeschlagenen Anforderungen mithilfe der Ablaufverfolgung in IIS 8.5

Gilt für: Internetinformationsdienste 8.5

Einführung

Die anforderungsbasierte Ablaufverfolgung ist sowohl in eigenständigen IIS-Servern als auch auf Microsoft Azure-Websites (WAWS) verfügbar. Wenn Sie das Problem reproduzieren können, das Sie feststellen können, bietet die anforderungsbasierte Ablaufverfolgung eine Möglichkeit, zu bestimmen, was genau mit Ihren Anforderungen geschieht und warum dies geschieht. Probleme wie z. B. eine schlechte Leistung bei einigen Anforderungen, authentifizierungsbezogene Fehler bei anderen Anforderungen oder der Server 500-Fehler von ASP oder ASP.NET können häufig schwierig zu beheben sein, es sei denn, Sie haben die Ablaufverfolgung des Problems erfasst. In diesem Artikel wird die Ablaufverfolgung von Fehlgeschlagenen Anforderungen auf IIS Server erläutert. Informationen dazu mit Microsoft Azure-Websites finden Sie unter Problembehandlung für eine App in Azure-App Service mit Visual Studio.

Fehleranforderungsablaufverfolgung ist so konzipiert, dass die Ablaufverfolgungsereignisse für eine Anforderung gepuffert werden und nur dann auf den Datenträger geleert werden, wenn die Anforderung fehlschlägt, wobei Sie die Definition des Fehlers angeben. Wenn Sie wissen möchten, warum Ihre Anforderungen einen bestimmten HTTP-Statuscode zurückgeben, z. B. 401 oder 404, oder wenn eine Anforderung eine Weile dauert, um zu verarbeiten oder nicht zu antworten, können Sie die Fehleranforderungsablaufverfolgung verwenden.

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

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 Internetinformationsdienste-Begrüßungsbildschirm angezeigt wird. Wenn IIS nicht installiert ist, finden Sie Installationsanweisungen unter IIS 8.5 unter Windows Server 2012 R2 . Stellen Sie beim Installieren von IIS sicher, dass Sie auch die folgenden Features installieren:

  • ASP.NET 3.5 (unter Web Server (IIS)/Web Server/Application Development Features/ASP.NET 3.5)
  • ASP.NET 4.5 (unter Web Server (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.

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, 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:

  1. Wählen Sie die Windows-Logo-Taste und die X-Taste gleichzeitig aus, wählen Sie die Eingabeaufforderung (Administrator) und dann "Ja" aus.

    Screenshot des Eingabeaufforderungsadministrators in der Windows-Taskleiste.

  2. Führe in der Eingabeaufforderung 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

  1. Navigieren Sie zu %systemdrive%\inetpub\wwwroot.

  2. 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.

  3. Erstellen Sie eine leere Datei, und nennen Sie sie test.asp.

  4. Navigieren Sie in der Eingabeaufforderung zur test.asp Datei in "\inetpub\wwwroot".

  5. 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.

Führen Sie die folgenden Schritte aus, um ASP zu deaktivieren:

  1. Öffnen Sie den IIS-Manager und wählen Sie den Server aus.

  2. Doppelklicken Sie auf ISAPI- und CGI-Einschränkungen.

    Screenshot des Bereichs

  3. Wählen Sie im Bereich ISAPI- und CGI-Einschränkungen die Option Active Server-Seiten aus. Wählen Sie im Bereich "Aktionen " die Option "Ablehnen " aus, um ASP zu deaktivieren. Aktive Serverseiten werden als nicht zulässig angezeigt.

    Screenshot des Bereichs

Aktivieren Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen.

Nachdem Sie die Fehleranforderungsablaufverfolgung aktiviert haben, müssen Sie den Pfad der Protokolldateien konfigurieren. In diesem Abschnitt aktivieren Sie die Fehleranforderungsablaufverfolgung für die Standardwebsite und geben an, wo die Protokolldateien gespeichert werden sollen, und konfigurieren Sie dann den Fehler, für den Fehlerprotokolle generiert werden sollen.

Schritt 1: Aktivieren der Anforderungsablaufverfolgung für die Website und Konfigurieren des Protokolldateiverzeichnisses

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\windows\system32\inetsrv.

  2. Führen Sie den Befehl zum Öffnen des IIS-Managers aus inetmgr .

  3. Erweitern Sie im Bereich "Verbindungen" den Computernamen, erweitern Sie "Websites", und wählen Sie dann "Standardwebsite" aus.

  4. Im Bereich Aktionen wählen Sie unter Konfigurieren die Option Verfolgung fehlgeschlagener Anforderungen.

    Screenshot des Bereichs

  5. 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.

    Screenshot zeigt das Dialogfeld 'Einstellungen für die Anforderungsablaufverfolgung der Website bearbeiten' mit aktiviertem Befehl 'Verzeichnisfeld' und aktiviertes Kontrollkästchen 'Aktivieren' an.

  6. Klicken Sie auf OK.

    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>
       <!-- 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 der Fehlerdefinitionen

Konfigurieren Sie in diesem Schritt die Fehlerdefinitionen für Ihre URL, einschließlich der Bereiche, die nachverfolgt werden sollen. Sie behandeln einen 404.2-Statuscode, 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-Statuscodes in IIS.

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\windows\system32\inetsrv.

  2. Führen Sie den Befehl zum Öffnen des IIS-Managers aus inetmgr .

  3. Erweitern Sie im Bereich "Verbindungen" den Computernamen, erweitern Sie "Websites", und wählen Sie dann "Standardwebsite" aus.

  4. Doppelklicken Sie auf Regeln für die Ablaufverfolgung fehlgeschlagener Anforderungen.

    Screenshot des Standardmäßigen Startbereichs der Website, in dem das Feature

  5. Wählen Sie im Bereich "Aktionen" die Option "Hinzufügen..." aus.

  6. Wählen Sie im Assistenten zum Hinzufügen der Regel zur Ablaufverfolgung von Fehlgeschlagenen Anforderungen auf der Seite "Inhalt für Ablaufverfolgung angeben" den Eintrag "Alle Inhalte(*) aus" und dann "Weiter" aus.

    Screenshot des Assistenten zum Hinzufügen von Regel zur Ablaufverfolgung von Fehlgeschlagenen Anforderungen. Die Option

  7. Aktivieren Sie auf der Seite "Ablaufverfolgungsbedingungen definieren" das Kontrollkästchen "Statuscode(n) ", und geben Sie "404.2 " als Statuscode zur Ablaufverfolgung ein.

    Screenshot der Seite

  8. Wählen Sie Weiter aus.

  9. 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 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.

  10. Wählen Sie unter Ausführlichkeit die Option Ausführlich aus.

    Hinweis

    Wenn Sie den Rollendienst für die Ablaufverfolgung installieren, installiert IIS standardmäßig die Anbieter für WWW-Server, ASP und ISAPI-Erweiterungsablaufverfolgung. Wenn Sie ASP.NET 2.0 oder höher installieren, fügt IIS automatisch den ASPNET-Ablaufverfolgungsanbieter hinzu. Zusätzliche Anbieter werden durch das Installationspaket Routing von Anwendungsanforderungen (ARR) installiert, das auch das URL-Umschreibungsmodul, die Webfarmverwaltung und den externen Cache installiert. Sie können weitere Ablaufverfolgungsanbieter hinzufügen, indem Sie das Element <add> innerhalb des Elements <traceProviderDefinitions> verwenden.

    Screenshot des Assistenten zum Hinzufügen von Regel zur Ablaufverfolgung von Fehlgeschlagenen Anforderungen mit www Server, ausgewählt aus der Liste

  11. Wählen Sie Fertig stellenaus.

  12. Die folgende Definition für die Standardwebsite wird angezeigt:

    Screenshot der Seite

    Der IIS-Manager schreibt die Konfiguration in die Datei %systemdrive%\inetpub\wwwroot\web.config. Dies geschieht mithilfe eines <location>-Tags. 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 Fehleranforderungsprotokolldatei

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 einem HTTP-Antwortcode von 404.2 fehlschlagen. Überprüfen Sie nun, ob es funktioniert.

Schritt 1: Generieren eines Fehlers und der Protokolldatei der Fehleranforderungsanforderung

  1. Öffnen Sie ein neues Internet Explorer-Fenster.

  2. Geben Sie die http://localhost/test.asp EINGABETASTE ein, und drücken Sie die EINGABETASTE. Die Fehlermeldung "HTTP-Fehler 404.2 - Nicht gefunden" wird angezeigt.

    Screenshot des Internet Explorer-Fensters mit H T T P-Fehler 404 Punkt 2 gestrichelte Meldungsseite nicht gefunden.

Schritt 2: Anzeigen der Protokolldatei der Fehleranforderungsanforderung

  1. Nachdem Sie nun eine fehlgeschlagene Anforderung generiert haben, öffnen Sie Den Windows-Explorer, und navigieren Sie zu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Screenshot des Ordners

    Notiz

    Wenn IIS die fehlgeschlagene Anforderungsprotokolldatei schreibt, schreibt sie 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).

  2. 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:

    Screenshot des Dialogfelds

  3. Fügen Sie im Dialogfeld Internet Explorer der Liste der vertrauenswürdigen Websites "about:internet" hinzu, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie das Menü "Extras " und dann "Internetoptionen" aus.
    2. Wählen Sie die Registerkarte Sicherheit .
    3. Wählen Sie "Vertrauenswürdige Zone" und dann "Websites" aus.
    4. Dadurch kann XSL funktionieren.
  4. Nach dem Hinzufügen von about:internet zur Liste der vertrauenswürdigen Websites wird eine Seite "Anforderungszusammenfassung" angezeigt:

    Screenshot der Seite

    Eine Zusammenfassung der fehlgeschlagenen Anforderung wird oben protokolliert, wobei die Tabelle "Errors & Warnings" alle Ereignisse identifiziert, die im ERRORCRITICAL ERROR Schweregrad oder im Schweregrad liegenWARNING. In diesem Beispiel ist der WARNING Schweregrad auf ISAPI RESTRICTION zurückzuführen. Das Bild, das Sie laden wollten, war "%windir%\system32\inetsrv\asp.dll".

  5. Öffnen Sie die unformatierte XML-Datei direkt mithilfe eines Text-Editors und sehen Sie sich den Inhalt des Ereignisses an.

Zusammenfassung

Sie haben zwei Aufgaben abgeschlossen: Konfigurieren der Fehleranforderungsablaufverfolgung zum Erfassen von Ablaufverfolgungen für jede Anforderung, die IIS mit einem Statuscode 404.2 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 solche mit einem 404.2-Rückgabecode enthielt. Wenn Sie die Fehlerprotokolldatei eingesehen haben, haben Sie festgestellt, 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 diese Ablaufverfolgungen von der Protokolldatei nicht hinzugefügt werden. Sie können dieses Ereignis 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