Freigeben über


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:

  1. Wählen Sie ">Alle Programme>starten" aus.

  2. Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung, und wählen Sie dann "Als Administrator ausführen" aus.

    Screenshot des Kontextmenüs für die Eingabeaufforderung, wobei

  3. Führen Sie in der Eingabeaufforderung folgenden Befehl aus:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

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.

So deaktivieren Sie ASP

  1. Öffnen Sie das Dialogfeld Internetinformationsdienste-Manager.

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

    Screenshot, der den I S-Manager mit den ausgewählten Einschränkungen für I S A P I und C G zeigt.

  3. Wählen Sie Aktive Serverseiten aus. Wählen Sie im Bereich "Aktionen " die Option "Ablehnen " aus, um ASP zu deaktivieren.

    Screenshot des geöffneten Bereichs

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

  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. Wählen Sie im Bereich "Aktionen" unter "Konfigurieren" die Option "Ablaufverfolgung fehlgeschlagener Anforderungen" aus.

    Screenshot der Fehleranforderungsablaufverfolgung unter

  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 des Dialogfelds

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

  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, der den Startbereich

  5. Klicken Sie auf Fertigstellen.

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

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

    Screenshot des Assistenten zum Hinzufügen von Regel zur Ablaufverfolgung fehlgeschlagener Anforderungen, wobei

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

  9. Wählen Sie Weiter aus.

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

    Screenshot der Seite

  11. Klicken Sie auf Fertigstellen. Die folgende Definition für die Standardwebsite sollte angezeigt werden:

    Screenshot des Bereichs

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

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

  2. Geben Sie die folgende Adresse ein: http://localhost/test.asp.

  3. Es wird ein Fehler "HTTP-Fehler 404.2 - Nicht gefunden" angezeigt.

    Screenshot einer Webseite mit dem Titel

Schritt 2: Anzeigen der Protokolldatei der Fehleranforderungsanforderung

  1. Nachdem Sie nun eine fehlgeschlagene Anforderung generiert haben, öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und navigieren Sie zu %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

  2. Führen Sie Start aus, um ein Internet Explorer-Fenster aus dem Verzeichnis zu starten.

    Screenshot, der zeigt, dass Internet Explorer zum W 3 S V C 1-Pfad navigiert. Zwei Dateien sind aufgeführt, freb und f r 0 0 0 0 0 0 1.

  3. 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).

  4. 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 eines Dialogfelds für die erweiterte Sicherheitskonfiguration von Internet Explorer. Informationen zum Doppelpunkt-Internet werden blockiert.

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

    Screenshot, der Internet Explorer zeigt. Die Registerkarte

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

  6. Ö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