Problembehandlung für fehlerhafte Anforderungen mithilfe der Ablaufverfolgung in IIS 7

Gilt für: Internetinformationsdienste 7.0

Hinweis

Dieser Artikel gilt für IIS 7.0. Informationen zu neueren Versionen finden Sie unter Problembehandlung bei anforderungensfehlern mithilfe der Ablaufverfolgung in IIS 8.5.

Die anforderungsbasierte Ablaufverfolgung ist sowohl auf 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 aufgetretene Problem reproduzieren können. Probleme wie schlechte Leistung bei einigen Anforderungen, Authentifizierungsfehler bei anderen Anforderungen oder der Server 500-Fehler von ASP oder ASP.NET können häufig schwierig zu behandeln 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 Azure-Web-Apps durchführen, finden Sie unter Problembehandlung für eine App in Azure App Service mit Visual Studio.

Die Ablaufverfolgung für fehlgeschlagene 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. Dort geben Sie die Definition von "Fehler" an. Wenn Sie wissen möchten, warum 404.2 Fehlermeldungen angezeigt werden oder die Anforderung nicht mehr reagiert, verwenden Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen.

In diesem Artikel werden folgende Aufgaben veranschaulicht:

  • 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

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 Installieren von IIS unter Windows Server 2008 . Stellen Sie bei der Installation von IIS sicher, dass Sie auch die folgenden Features installieren:

  • ASP.NET (unterASP.NET derAnwendungsentwicklungsfeatures - von World Wide Web Services - )
  • Ablaufverfolgung (unterIntegritäts- undDiagnoseablaufverfolgung - für World Wide Web Services - )

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, erhalten Sie standardmäßig keine Administratorrechte. Sie müssen Anwendungen als Administrator ausführen. Dies können Sie tun, 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 erstellen, 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 SieAlle Programme>starten>Zubehör aus.

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

    Screenshot: Kontextmenü für die Eingabeaufforderung mit ausgewählter Option

  3. Führen Sie an einer Eingabeaufforderung den folgenden Befehl aus:

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

Erstellen von Beispielinhalten

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

  2. Verschieben Sie den Inhalt an einen sicheren Speicherort (falls Sie den vorhandenen Inhalt wiederherstellen möchten), oder löschen Sie ihn.

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

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

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

So deaktivieren Sie ASP

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

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

    Screenshot: IS-Manager mit ausgewählten ISP- und C G I-Einschränkungen

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

    Screenshot, der den geöffneten Bereich

Aktivieren der Ablaufverfolgung für fehlgeschlagene Anforderungen

Nachdem Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen aktiviert haben, müssen Sie konfigurieren, wo sich die Protokolldateien befinden. In dieser Aufgabe aktivieren Sie die Ablaufverfolgung fehlgeschlagener Anforderungen 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 Ablaufverfolgung für fehlgeschlagene Anforderungen für den Standort und Konfigurieren des Protokolldateiverzeichnisses

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

  2. Führen Sie aus inetmgr , um den IIS-Manager zu öffnen.

  3. Erweitern Sie im Bereich Connections 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: Ablaufverfolgung fehlgeschlagener Anforderungen unter Konfigurieren.

  5. Konfigurieren Sie im Dialogfeld Einstellungen für die Ablaufverfolgung von Anforderungsfehlern für Website bearbeiten Folgendes:

    • Aktivieren Sie das Kontrollkästchen Aktivieren .
    • Behalten Sie die Standardwerte für die anderen Einstellungen bei.

    Screenshot: Dialogfeld

  6. 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>
   <sites> 
      <!-- site & app defaults --> 
      <site name="Default Web Site" id="1"> 
         <!-- other site configuration --> 
         <traceFailedRequestsLogging  enabled="true" /> 
      </site> 
   </sites> 
</system.applicationHost>

Schritt 2: Konfigurieren Ihrer Fehlerdefinitionen

In diesem Schritt konfigurieren Sie die Fehlerdefinitionen für Ihre URL, einschließlich der zu verfolgenden Bereiche. Sie behandeln eine Problembehandlung für eine Version 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 bestimmen, welche erweiterungen Sie aktivieren müssen.

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

  2. Führen Sie aus inetmgr , um den IIS-Manager zu öffnen.

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

  4. Doppelklicken Sie auf Ablaufverfolgungsregeln für fehlgeschlagene 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 fehlerhafter Anforderungsablaufverfolgungsregeln auf der Seite Inhalt für Ablaufverfolgung angeben die Option Alle Inhalte (*) aus. Wählen Sie Weiter aus.

    Screenshot: Assistent zum Hinzufügen einer Regel für die Ablaufverfolgung von Anforderungen mit der Option

  8. Aktivieren Sie auf der Seite Ablaufverfolgungsbedingungen definieren das Kontrollkästchen Statuscodes, und geben Sie 404.2 als status Code ein, der nachverfolgt werden soll.

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

    Screenshot: Seite

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

    Screenshot: Bereich

IIS-Manager schreibt die Konfiguration mithilfe eines <location> -Tags in die %windir%\system32\inetsrv\config\applicationHost.config Datei. 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 Protokolldatei für Fehleranforderungen

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

Schritt 1: Generieren eines Fehlers und der Protokolldatei der Fehleranforderung

  1. Öffnen Sie ein neues Internet Explorer Fenster.

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

  3. Sie erhalten den Fehler "HTTP-Fehler 404.2 – Nicht gefunden".

    Screenshot: Webseite mit dem Titel

Schritt 2: Anzeigen der Protokolldatei der Fehleranforderung

  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: Internet Explorer Navigieren zum W 3 S V C1-Pfad Zwei Dateien sind aufgeführt: freb und f r 0 0 0 0 0 0 1.

  3. Beachten Sie hier einige Dinge: 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).

  4. Klicken Sie mit der rechten Maustaste auf die Protokolldatei für den Fehler 404.2, und wählen Sie Mit>Internet öffnen 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:

    Screenshot: Dialogfeld

  5. Wählen Sie im Dialogfeld Internet Explorerdie Option Hinzufügen... aus, um about:internet der Liste der vertrauenswürdigen Websites hinzuzufügen. Dadurch kann die XSL funktionieren. Nach dem Hinzufügen von about:internet zur Liste der vertrauenswürdigen Websites wird Folgendes angezeigt:

    Screenshot: Internet Explorer Die Registerkarte Anforderungszusammenfassung ist ausgewählt, und es werden zwei Warnungen aufgelistet.

    Eine Zusammenfassung der fehlgeschlagenen Anforderung wird oben protokolliert, wobei die Tabelle Fehler & Warnungen alle Ereignisse identifiziert, die WARNUNG, FEHLER oder KRITISCHER FEHLER im Schweregrad sind. In diesem Beispiel ist der Warnungsschweregrad auf ISAPI RESTRICTION zurückzuführen. Das Bild, das Sie laden wollten, war %windir%\system32\inetsrv\asp.dll.

  6. Öffnen Sie die XML-Rohdatendatei direkt mit einem Text-Editor, und sehen Sie sich den Inhalt der einzelnen Ereignisse an.

Zusammenfassung

Sie haben zwei Aufgaben abgeschlossen: Konfigurieren der Ablaufverfolgung für fehlgeschlagene Anforderungen, um Ablaufverfolgungen für jede Anforderung zu erfassen, die IIS diese mit einem 404.2 status Code zurückgibt, und überprüft, ob IIS die Ablaufverfolgung für Ihre Anforderung erfasst hat. Außerdem haben Sie überprüft, ob die freb.xml Protokolldatei keine weiteren Anforderungen für die von Ihnen gestellten Anforderungen enthielt, da die Anforderungen keinen 404.2-Rückgabecode enthielten. Wenn Sie die Fehlerprotokolldatei lesen, 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 die Protokolldatei diese Ablaufverfolgungen NICHT hinzugibt. Sie können dies 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