Artikel-ID: 820729 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

In diesem Artikel werden die Fehlerprotokollierungsfunktionen von HTTP-APIs beschrieben.

Einige Fehler, die in einer HTTP-basierten Anwendung auftreten, werden automatisch von der HTTP-API behandelt, statt zur Fehlerbehandlung wieder an die Anwendung zurückgegeben zu werden. Dadurch soll verhindert werden, dass ein Ereignisprotokoll oder ein Anwendungshandler durch diese häufig auftretenden Fehler überlastet wird.

In den folgenden Themen werden die verschiedenen Aspekte der HTTP-API-Fehlerprotokollierung beschrieben:

Weitere Informationen

Konfigurieren der HTTP-API-Fehlerprotokollierung

Wenn Sie die HTTP-API-Fehlerprotokollierung automatisch konfigurieren lassen möchten, lesen Sie den Abschnitt "Problem automatisch beheben". Wenn Sie die HTTP-API-Fehlerprotokollierung lieber selbst konfigurieren möchten, lesen Sie den Abschnitt "Korrektur selbst vornehmen".

Problem automatisch beheben



Wenn Sie das Problem automatisch beheben lassen möchten, klicken Sie auf die Fix it-Schaltfläche oder den Link Problem beheben. Klicken Sie im Dialogfeld Dateidownload auf Ausführen, und befolgen Sie dann die Schritte im Fix it-Assistenten.

Deaktivieren der HTTP-API-Fehlerprotokollierung
Microsoft Fix it 50635
Aktivieren der HTTP-API-Fehlerprotokollierung
Microsoft Fix it 50634


Hinweise
  • Dieser Assistent ist möglicherweise nur in englischer Sprache verfügbar. Die automatische Korrektur funktioniert aber auch für andere Sprachversionen von Windows.
  • Wenn Sie sich nicht an dem Computer befinden, auf dem das Problem auftritt, speichern Sie die Fix it-Lösung auf einem Speicherstick oder einer CD, und führen Sie sie anschließend auf dem vom Problem betroffenen Computer aus.



Korrektur selbst vornehmen

Die HTTP-API-Fehlerprotokollierung wird durch drei Registrierungswerte unter dem Schlüssel HTTP \Parameters gesteuert. Diese Schlüssel befinden sich im folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Hinweis Der Speicherort und das Format der Konfigurationswerte kann sich in späteren Versionen des Betriebssystems Microsoft Windows ändern.

Sie müssen über Anmeldeinformationen als Administrator oder lokale Systemanmeldeinformationen verfügen, um die Registrierungswerte ändern und die Protokolldateien sowie die Ordner, in denen diese enthalten sind, anzeigen oder ändern zu können.

Die in den Registrierungswerten enthaltenen Konfigurationsinformationen werden beim Start des HTTP-API-Treibers gelesen. Wenn Sie diese Einstellungen ändern, müssen Sie daher den Treiber anhalten und dann neu starten, damit die neuen Werte gelesen werden. Hierzu geben Sie die folgenden Konsolenbefehle ein:
net stop http
net start http
Die folgende Benennungskonvention gilt für die Benennung von Protokolldateien:
httperr + Sequenznummer + .log
Beispiel: httperr4.log
Protokolldateien werden geschlossen, wenn sie die maximal zulässige Größe erreichen, die mit dem Registrierungswert ErrorLogFileTruncateSize festgelegt wird. Dieser Wert darf nicht kleiner als ein Megabyte (MB) sein.

Wenn die Konfiguration der Fehlerprotokollierung ungültig ist oder wenn irgendein Fehler auftritt, während die HTTP-API Einträge in die Protokolldateien schreibt, dann werden Administratoren mittels der HTTP-API-Fehlerprotokollierung davon benachrichtigt, dass keine Fehlerprotokolleinträge erstellt werden.

In der folgenden Tabelle werden die Registrierungskonfigurationswerte beschrieben.
Tabelle minimierenTabelle vergrößern
RegistrierungswertBeschreibung
EnableErrorLoggingEin DWORD-Wert, den Sie auf TRUE festlegen können, um die Fehlerprotokollierung zu aktivieren, oder auf FALSE, um sie zu deaktivieren. Der Standardwert lautet TRUE.
ErrorLogFileTruncateSizeEin DWORD-Wert, der die maximale Größe einer Fehlerprotokolldatei in Byte angibt. Der Standardwert beträgt ein MB (0x100000).

Hinweis Der angegebene Wert darf nicht kleiner als der Standardwert sein.
ErrorLoggingDirEin String-Wert, der den Ordner angibt, in dem die HTTP-API Protokolldateien ablegt.

Die HTTP-API erstellt den Unterordner HTTPERR im angegebenen Ordner und speichert dann die Protokolldateien in diesem Unterordner. Dieser Unterordner und die Protokolldateien erhalten die gleichen Berechtigungseinstellungen. Die Administrator- und lokalen Systemkonten haben Vollzugriff. Andere Benutzer haben keinen Zugriff.

Wenn der Ordner in der Registrierung nicht angegeben worden ist, wird der folgende Standardordner verwendet:
%SystemRoot%\System32\LogFiles

Hinweis Der Zeichenfolgenwert ErrorLoggingDir muss einen wird lokalen Pfad enthalten. Sie darf allerdings %SystemRoot% enthalten. Netzwerklaufwerke oder Netzwerkfreigaben dürfen nicht verwendet werden.

Format der HTTP-API-Fehlerprotokolle

Im Allgemeinen haben HTTP-API-Fehlerprotokolldateien das gleiche Format wie W3C-Fehlerprotokolle, nur enthalten HTTP-API-Fehlerprotokolldateien keine Spaltenüberschriften. Jede Zeile in einem HTTP-API-Fehlerprotokoll dokumentiert einen Fehler. Die Felder haben eine bestimmte Reihenfolge. Ein einzelnes Leerzeichen (0 x 0020) trennt jedes Feld vom vorherigen Feld In den einzelnen Feldern werden Leerzeichen, Tabulatorzeichen und nicht druckbare Steuerzeichen durch Pluszeichen (0x002B) ersetzt.

In der folgenden Tabelle werden die Felder und die Reihenfolge der Felder in einem Fehlerprotokolldatensatz bezeichnet.
Tabelle minimierenTabelle vergrößern
FeldBeschreibung
Date (Datum)Das Datumsfeld entspricht dem W3C-Format. Dieses Feld basiert auf der koordinierten Weltzeit (UTC, wird Universal Time). Das Datumsfeld umfasst stets zehn Zeichen im Format wird JJJJ-MM-TT. Beispielsweise wird der 1. Mai 2003 durch die Zeichenfolge 2003-05-01 dargestellt.
Time (Uhrzeit)Das Uhrzeitfeld entspricht dem W3C-Format. Dieses Feld basiert auf der koordinierten Weltzeit (UTC). Das Uhrzeitfeld umfasst stets acht Zeichen im Format MM:HH:SS. Beispielsweise wird 5:30 PM (UTC) durch die Angabe 17:30:00 dargestellt.
Client IP Address (Client-IP-Adresse)Die IP-Adresse des betreffenden Clients. Bei dem Wert dieses Felds kann es sich entweder um eine IPv4-Adresse oder eine IPv6-Adresse handeln. Wenn die Client-IP-Adresse eine IPv6-Adresse ist, dann ist das Feld ScopeId (Bereichskennung) ebenfalls in der Adresse enthalten.
Client Port (Client-Port)Die Port-Nummer des betreffenden Clients.
Server IP Address (Server-IP-Adresse)Die IP-Adresse des betreffenden Servers. Bei dem Wert dieses Felds kann es sich entweder um eine IPv4-Adresse oder eine IPv6-Adresse handeln. Wenn die Server-IP-Adresse eine IPv6-Adresse ist, dann ist das Feld ScopeId (Bereichskennung) ebenfalls in der Adresse enthalten.
Server-PortDie Port-Nummer des betreffenden Servers.
Protocol Version (Protokollversion)Die Version des verwendeten Protokolls.

Wenn die Verbindung nicht ausreichend analysiert werden konnte, um die Protokollversion zu bestimmen, wird ein Bindestrich (0x002D) als Platzhalter in das leere Feld eingefügt.

Wenn die analysierte Hauptversionsnummer oder die Nebenversionsnummer größer oder gleich 10 ist, dann für die Version der Eintrag HTTP/?.? in das Protokoll eingetragen.
VerbDer Verb-Status der zuletzt erfolgreich analysierten Anforderung. Unbekannte Verben werden aufgenommen, jedoch werden alle Verben, die länger als 255 Byte sind, auf diese Länge gekürzt. Wenn kein Verb verfügbar ist, wird ein Bindestrich (0x002D) als Platzhalter in das leere Feld eingefügt.
CookedURL + Query (CookedURL und Abfrage)Die URL und alle zugehörigen Abfragen werden in einem Protokollfeld verzeichnet und durch ein Fragezeichen (0x3F) voneinander getrennt. Dieses Feld wird auf die maximale Länge von 4,096 Byte verkürzt.

Wenn diese URL analysiert ("cooked") wurde, wird sie mit der lokalen Codeseitenkonvertierung protokolliert und als Unicode-Feld behandelt.

Wurde die URL zum Zeitpunkt der Protokollierung noch nicht verarbeitet ("cooked"), dann wird sie ohne Unicode-Konvertierung wie angegeben in den Protokolleintrag kopiert.

Wenn die HTTP-API diese URL nicht analysieren kann, dann wird ein Bindestrich (0x002D) als Platzhalter in das leere Feld eingefügt.
Protocol Status (Protokollstatus)Der Protokollstatus darf nicht größer als 999 sein

Wenn der Protokollstatus der Antwort auf eine Anforderung verfügbar ist, wird er in diesem Feld verzeichnet.

Ist der Protokollstatus nicht verfügbar, wird ein Bindestrich (0x002D) als Platzhalter in das leere Feld eingefügt.
SiteId (Standortkennung)Wird in dieser Version der HTTP-API nicht verwendet. In diesem Feld wird immer ein Bindestrich (0x002D) als Platzhalter angezeigt.
Reason Phrase (Ursachenausdruck)Dieses Feld enthält eine Zeichenfolge, die den Fehlertyp bezeichnet, der protokolliert wird. Dieses Feld bleibt nie leer.
Queue Name (Warteschlangenname)Dies ist der Name der Anforderungswarteschlange.
Die folgende Beispielzeilen stammen aus einem HTTP-API-Fehlerprotokoll:
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 ? ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400 ? Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

Fehlertypen, die von der HTTP-API protokolliert werden

Die HTTP-API protokolliert an Clients ausgegebene Fehlermeldungen, Verbindungstimeouts, verwaiste Anforderungen und Verbindungsunterbrechungen, die falsch gehandhabt werden.

Die folgende Liste enthält die Fehlertypen, die von der HTTP-API protokolliert werden:
  • Antworten an Clients Die HTTP-API sendet eine Fehlermeldung als Antwort an einen Client, beispielsweise einen 400-Fehler, der durch einen Parserfehler in der zuletzt empfangenen Anforderung ausgelöst wird. Nachdem die HTTP-API die Fehlerantwort gesendet hat, wird die Verbindung beendet.
  • Verbindungstimeouts Die HTTP-API überschreitet das für eine Verbindung festgelegte Zeitlimit. Wenn eine Anforderung noch aussteht, wenn das Zeitlimit der Verbindung überschritten wird, dann werden anhand der Anforderung weitere Informationen zur Verbindung in das Fehlerprotokoll aufgenommen.
  • Verwaiste Anforderungen Ein Benutzermodus-Prozess wird unerwartet beendet, während sich noch Anforderungen in der Warteschlange befinden, die an diesen Prozess weitergeleitet werden sollen. Die HTTP-API verzeichnet die verwaisten Anforderungen im Fehlerprotokoll.
Bestimmte Fehlertypen werden durch Reason Phrase-Zeichenfolgen unterschieden, die stets als letztes Feld in einer Fehlerzeile angezeigt werden. In der folgenden Tabelle werden die von der HTTP-API für das Feld "Reason Phase" verwendeten Werte aufgeführt.
Tabelle minimierenTabelle vergrößern
Reason Phrase (Ursachenausdruck)Beschreibung

AppOfflineEs ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist nicht verfügbar, weil die Anwendung wegen Anwendungsfehlern deaktiviert wurde.
AppPoolTimerEs ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist nicht verfügbar, weil der Anwendungspool-Prozess die Anforderung wegen Überlastung nicht verarbeiten kann.
AppShutdownEs ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist nicht verfügbar, weil die Anwendung wegen einer Administratorrichtlinie automatisch heruntergefahren wurde.
BadRequestWährend der Verarbeitung der Anforderung ist ein Fehler beim Analysieren aufgetreten.
Client_ResetDie Verbindung zwischen dem Client und dem Server wurde geschlossen, bevor die Anforderung einem Arbeitsprozess zugewiesen werden konnte. Der häufigste Grund für dieses Verhalten ist, dass der Client vorzeitig seine Verbindung zum Server beendet.
Connection_Abandoned_By_AppPoolEin Arbeitsprozess aus dem Anwendungspool wurde unerwartet beendet oder hat eine ausstehende Anforderung verwaist, indem deren Handle geschlossen wurde.
Connection_Abandoned_By_ReqQueueEin Arbeitsprozess aus dem Anwendungspool wurde unerwartet beendet oder hat eine ausstehende Anforderung verwaist, indem deren Handle geschlossen wurde. Betrifft Windows Vista und höhere Versionen und Windows Server 2008 und höhere Versionen.
Connection_DroppedDie Verbindung zwischen dem Client und dem Server wurde geschlossen, bevor der Server sein letztes Antwortpaket senden konnte. Der häufigste Grund für dieses Verhalten ist, dass der Client vorzeitig seine Verbindung zum Server beendet.
Connection_Dropped_List_FullDie Liste der getrennten Verbindungen zwischen Clients und dem Server ist voll. Betrifft Windows Vista und höhere Versionen und Windows Server 2008 und höhere Versionen.
ConnLimitEs ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist nicht verfügbar, weil das auf Standortebene geltende Verbindungslimit erreicht oder überschritten wurde.
Connections_RefusedIm NonPagedPool-Speicher im Kernel sind weniger als 20 MB frei, und http.sys empfängt keine neuen Verbindungen mehr.
DeaktiviertEs ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist nicht verfügbar, weil die Anwendung von einem Administrator deaktiviert wurde.
EntityTooLargeEine Entität überschreitet die maximal zulässige Größe.
FieldLengthEine Feldlängenbeschränkung wurde überschritten.
ForbiddenBeim Analysieren wurde ein unzulässiges Element oder eine unzulässige Sequenz gefunden.
KopfzeileIn einer Kopfzeile ist ein Fehler beim Analysieren aufgetreten.
HostnameWährend der Verarbeitung eines Hostnamens ist ein Fehler beim Analysieren aufgetreten.
InternalEs ist ein interner Serverfehler aufgetreten (HTTP-Fehler 500).
Invalid_CR/LFEs wurde ein unzulässiger Wagenrücklauf oder Zeilenvorschub gefunden.
LengthRequiredEin erforderlicher Längenwert fehlte.
-Es ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist wegen eines internen Fehlers (z. B. einer fehlgeschlagenen Speicherreservierung oder einem URL-Reservierungslistenkonflikt) nicht verfügbar.
N/IWegen einer unbekannten Übertragungskodierung ist ein Fehler aufgetreten, der auf eine fehlende Implementierung (HTTP-Fehler 501) oder einen nicht verfügbaren Dienst (HTTP-Fehler 503) hinweist.
NumberWährend der Verarbeitung einer Zahl ist ein Fehler beim Analysieren aufgetreten.
PreconditionEine erforderliche Voraussetzung fehlte.
QueueFullEs ist ein Fehler aufgetreten, weil ein Dienst nicht verfügbar ist (HTTP-Fehler 503). Der Dienst ist nicht verfügbar, weil die Warteschlange der Anwendungsanforderungen voll ist.
RequestLengthEine Anforderungslängenbeschränkung wurde überschritten.
Timer_AppPoolDie Verbindung ist abgelaufen, weil eine Anforderung zu lange in einer Warteschlange des Anwendungspools darauf gewartet hat, von einer Serveranwendung aus der Warteschlange entfernt und verarbeitet zu werden. Diese Timeoutdauer entspricht ConnectionTimeout. Standardmäßig ist dieser Wert auf zwei Minuten festgelegt.
Timer_ConnectionIdleDie Verbindung ist abgelaufen und bleibt inaktiv. Der Standardwert für das durch ConnectionTimeout definierte Zeitlimit beträgt zwei Minuten.
Timer_EntityBodyDie Verbindung ist abgelaufen, bevor der Anforderungsentitätskörper eingetroffen ist. Wenn die Anforderung offensichtlich über einen Entitätskörper verfügt, aktiviert die HTTP-API den Timer Timer_EntityBody. Zuerst wird das Zeitlimit dieses Timers auf den ConnectionTimeout-Wert festgelegt (in der Regel zwei Minuten). Jedes Mal, wenn eine weitere Datenanzeige für diese Anforderung empfangen wird, setzt die HTTP-API den Timer zurück, um das Zeitlimit der Verbindung um weitere zwei Minuten (bzw. den für ConnectionTimeout festgelegten Wert) zu verlängern.
Timer_HeaderWaitDie Verbindung ist abgelaufen, weil die Analyse eines Anforderungsheaders länger als das Standardzeitlimit von zwei Minuten dauerte.
Timer_MinBytesPerSecondDie Verbindung ist abgelaufen, weil der Client zu langsam Antworten empfängt. Die Antwortsenderate war langsamer als der Standardwert von 240 Byte/s. Dieser Wert kann über die Metabasiseigenschaft MinFileBytesPerSec gesteuert werden.
Timer_ReqQueueDie Verbindung ist abgelaufen, weil eine Anforderung zu lange in einer Warteschlange des Anwendungspools darauf gewartet hat, von einer Serveranwendung aus der Warteschlange entfernt zu werden. Diese Timeoutdauer entspricht ConnectionTimeout. Standardmäßig ist dieser Wert auf zwei Minuten festgelegt. Betrifft Windows Vista und höhere Versionen und Windows Server 2008 und höhere Versionen.
Timer_ResponseReserviert. Derzeit nicht verwendet.
Timer_SslRenegotiation Die Verbindung ist abgelaufen, weil die erneute SSL-Aushandlung zwischen Client und Server länger als das Standardtimeout von zwei Minuten gedauert hat.
URLWährend der Verarbeitung einer URL ist ein Fehler beim Analysieren aufgetreten.
URL_LengthEine URL überschreitet die maximal zulässige Größe.
VerbWährend der Verarbeitung eines Verbs ist ein Fehler beim Analysieren aufgetreten.
Version_N/SEs ist ein Fehler wegen einer nicht unterstützten Version (HTTP-Fehler 505) aufgetreten.

Informationsquellen

Weitere Informationen zum Hinzufügen zusätzlicher Protokollfelder für die IIS-HTTP-Fehlerprotokollierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
832975 Zusätzliche Eigenschaften zur Protokollierung in der Datei "Httperr#.log" in IIS 6.0 und IIS 7.0 sind jetzt verfügbar

Eigenschaften

Artikel-ID: 820729 - Geändert am: Freitag, 26. April 2013 - Version: 15.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Windows Server 2012 Standard
  • Windows 8
  • Windows 8 Pro
  • Windows 8 Enterprise
  • Windows 7 Professional
  • Windows 7 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 Enterprise
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
Keywords: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com