Numer ID artykułu: 820729 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

W tym artykule opisano możliwości rejestrowania błędów w interfejsach HTTP API.

Niektóre błędy występujące w aplikacjach HTTP nie są przekazywane z powrotem do aplikacji w celu przetworzenia, ale są automatycznie obsługiwane przez interfejs HTTP API. Dzieje się tak, ponieważ częstotliwość takich błędów mogłaby doprowadzić do przeciążenia dziennika zdarzeń lub programu obsługi aplikacji.

W poniższych tematach opisano różne aspekty rejestrowania błędów w interfejsach HTTP API.

Więcej informacji

Konfigurowanie rejestrowania błędów w interfejsie HTTP API

Aby automatycznie skonfigurować rejestrowanie błędów w interfejsie HTTP API, przejdź do sekcji Automatyczne rozwiązywanie problemu. Aby samodzielnie skonfigurować rejestrowanie błędów w interfejsie HTTP API, przejdź do sekcji Samodzielne rozwiązywanie problemu.

Automatyczne rozwiązywanie problemu



Aby automatycznie rozwiązać ten problem, należy kliknąć przycisk lub łącze Fix it. W oknie dialogowym Pobieranie pliku należy kliknąć przycisk Uruchom i wykonać kroki kreatora rozwiązywania problemu (Fix it).

Wyłączanie rejestrowania błędów w interfejsie HTTP API
Microsoft Fix it 50635
Włączanie rejestrowania błędów w interfejsie HTTP API
Microsoft Fix it 50634


Uwagi
  • Ten kreator może być dostępny tylko w języku angielskim. Jednak ta poprawka automatyczna działa również w innych wersjach językowych systemu Windows.
  • Jeśli używany komputer nie jest tym, którego dotyczy problem, można zapisać to rozwiązanie w postaci poprawki automatycznej na dysku flash lub CD i uruchomić je na odpowiednim komputerze.



Samodzielne rozwiązywanie problemu

Działaniem rejestrowania błędów w interfejsie HTTP API sterują trzy wartości rejestru w kluczu HTTP \Parameters. Te klucze znajdują się w następującym kluczu rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Uwaga Lokalizacja i format tych wartości konfiguracji mogą ulec zmianie w nowszych wersjach systemu operacyjnego Windows.

Do zmieniania wartości rejestru oraz wyświetlania i modyfikowania plików dziennika w folderze je zawierającym są wymagane poświadczenia z uprawnieniami Administrator lub System lokalny.

Zawarte w wartościach rejestru informacje dotyczące konfiguracji są wczytywane podczas uruchamiania sterownika interfejsu HTTP API. Dlatego po zmianie ustawień należy zatrzymać, a następnie ponownie uruchomić sterownik w celu odczytania nowych wartości. W tym celu należy użyć następujących poleceń konsoli:
net stop http
net start http
Pliki dziennika są nazywane przy użyciu następujące konwencji:
httperr + numer kolejny + .log
Przykład: httperr4.log
Pliki dziennika są używane cyklicznie. Nowy plik zostaje utworzony po osiągnięciu przez stary maksymalnego rozmiaru określonego w wartości rejestru ErrorLogFileTruncateSize. Ta wartość nie może być mniejsza niż jeden megabajt (MB).

Jeśli konfiguracja funkcji rejestrowania błędów jest nieprawidłowa lub podczas zapisywania plików dziennika przez interfejs HTTP API wystąpi jakiś błąd tej funkcji, interfejs powiadomi administratorów za pośrednictwem rejestrowania zdarzeń o zatrzymaniu rejestrowania błędów.

Następująca tabela zawiera opis wartości konfiguracji rejestru.
Zwiń tę tabelęRozwiń tę tabelę
Wartość rejestruOpis
EnableErrorLoggingWartość DWORD służąca do włączania funkcji rejestrowania błędów (ustawienie TRUE) lub jej wyłączania (ustawienie FALSE). Domyślną wartością jest ustawienie TRUE.
ErrorLogFileTruncateSizeWartość DWORD określająca maksymalny rozmiar pliku dziennika błędów (w bajtach). Wartość domyślna wynosi jeden MB (0x100000).

Uwaga Określona wartość nie może być mniejsza od wartości domyślnej.
ErrorLoggingDirCiąg wskazujący folder zapisywania plików funkcji rejestrowania interfejsu HTTP API.

W określonym folderze interfejs HTTP API tworzy podfolder HTTPERR, w którym następnie zapisuje pliki dziennika. Do tego podfolderu i zapisywanych w nim plików dziennika są przypisywane te same ustawienia uprawnień. Konta z uprawnieniami Administrator i System lokalny mają pełny dostęp. Pozostali użytkownicy nie mają dostępu.

Poniższa wartość wskazuje folder domyślny, który jest używany, gdy folder nie jest określony w rejestrze:
%SystemRoot%\System32\LogFiles

Uwaga Wartość ciągu ErrorLoggingDir musi być w pełni kwalifikowaną ścieżką lokalną. Można w niej jednak zastosować zmienną %SystemRoot%. Dyski i udziały sieciowe są niedozwolone.

Format dzienników błędów interfejsu HTTP API

Ogólnie pliki dziennika błędów interfejsu HTTP API mają taki sam format jak dzienniki błędów W3C. Jedyną różnicą jest to, że pliki dziennika błędów interfejsu HTTP API nie zawierają nagłówków kolumn. W każdym wierszu dziennika błędów interfejsu HTTP API jest zarejestrowany jeden błąd. Pola są umieszczone w określonej kolejności. Poszczególne pola są oddzielone znakiem pojedynczej spacji (0x0020). Znakiem plusa (0x002B) zastępowane są spacje, tabulatory i niedrukowalne znaki kontrolne we wszystkich polach.

Poniższa tabela zawiera pola dziennika błędów podane w rzeczywistej kolejności, w jakiej są rejestrowane w pliku.
Zwiń tę tabelęRozwiń tę tabelę
PoleOpis
DataPole daty w formacie W3C. Data jest podawana w formacie UTC (Coordinated Universal Time, uniwersalny czas koordynowany). To pole zawsze zawiera dziesięć znaków w formacie RRRR-MM-DD. Na przykład data 1 maja 2003 jest wyrażona w postaci 2003-05-01.
GodzinaPole godziny w formacie W3C. Godzina jest podawana w formacie UTC. To pole zawsze zawiera osiem znaków w formacie GG:MM:SS. Na przykład godzina 17:30 (UTC) jest wyrażona w postaci 17:30:00.
Adres IP klientaAdres IP klienta, którego dotyczy dany błąd. Wartością w tym polu może być adres IPv4 lub adres IPv6. Jeśli adresem IP klienta jest adres IPv6, to w adresie jest też dołączone pole ScopeId.
Port klientaNumer portu klienta, którego dotyczy dany błąd.
Adres IP serweraAdres IP serwera, którego dotyczy dany błąd. Wartością w tym polu może być adres IPv4 lub adres IPv6. Jeśli adresem IP serwera jest adres IPv6, to w adresie jest też dołączone pole ScopeId.
Port serweraNumer portu serwera, którego dotyczy dany błąd.
Wersja protokołuWersja używanego protokołu.

Jeśli połączenie nie zostało przeanalizowane w stopniu umożliwiającym określenie wersji protokołu, używany jest myślnik (0x002D) jako symbol zastępczy pustego pola.

Jeśli analizowany numer wersji głównej lub pomocniczej jest równy 10 bądź większy, to wersja jest rejestrowana jako HTTP/?.?.
ZlecenieStan ostatniego zlecenia przesłanego przez analizowane żądanie. Uwzględniane są nieznane zlecenia. Zlecenia o rozmiarze większym niż 255 bajtów są skracane do tej długości. Jeśli zlecenie jest niedostępne, używany jest myślnik (0x002D) jako symbol zastępczy pustego pola.
Przeanalizowany adres URL + zapytanieAdres URL i jakiekolwiek skojarzone z nim zapytanie są rejestrowane w jednym polu, oddzielone znakiem zapytania (0x3F). Długość tego pola jest skracana do 4 096 bajtów.

Przeanalizowane adresy URL są rejestrowane z konwersją na lokalną stronę kodową i traktowane jako pola Unicode.

Natomiast adresy URL, które w czasie rejestrowania nie zostały przeanalizowane, są kopiowane w dokładnej postaci bez konwersji Unicode.

Jeśli interfejs HTTP API nie może przeanalizować danego adresu URL, używany jest myślnik (0x002D) jako symbol zastępczy pustego pola.
Stan protokołuWartość stanu protokołu nie może być większa niż 999.

W tym polu rejestrowany jest stan protokołu odpowiedzi na żądanie, jeśli jest dostępny.

Jeśli stan protokołu jest niedostępny, używany jest myślnik (0x002D) jako symbol zastępczy pustego pola.
Identyfikator witrynyWartość nieużywana w tej wersji interfejsu HTTP API. W tym polu jest zawsze używany symbol zastępczy (myślnik, 0x002D).
Fraza przyczynyTo pole zawiera ciąg identyfikujący typ rejestrowanego błędu. To pole nigdy nie jest puste.
Nazwa kolejkiNazwa kolejki żądania.
Poniżej przedstawiono przykładowe wiersze z dziennika błędów interfejsu HTTP API:
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 /moj_adres_URL.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

Typy błędów rejestrowanych przez interfejs HTTP API

Interfejs HTTP API rejestruje komunikaty o błędach wysyłane w odpowiedziach do klientów, upłynięcia limitów czasu połączeń, oddzielone (osierocone) żądania i nieprawidłowo obsłużone przerwane połączenia.

Poniższa tabela zawiera typy błędów rejestrowanych przez interfejs HTTP API:
  • Odpowiedzi do klientów Interfejs HTTP API wysyła do klienta odpowiedź z komunikatem o błędzie, takim jak błąd 400 wywołany przez błąd analizy w ostatnio otrzymanym żądaniu. Po wysłaniu takiej odpowiedzi interfejs HTTP API kończy połączenie.
  • Upływanie limitów czasu Interfejs HTTP API kończy połączenie z powodu upłynięcia limitu czasu. Jeśli w chwili upłynięcia limitu czasu żądanie było w stanie oczekiwania, to w dzienniku błędów żądanie jest używane w celu podania dodatkowych informacji o połączeniu.
  • Żądania oddzielone (osierocone) Proces w trybie użytkownika zostaje nieoczekiwanie zakończony w chwili, gdy w kolejce nadal istnieją przekierowane do tego procesu żądania. Interfejs HTTP API rejestruje takie oddzielone żądania w dzienniku błędów.
Specyficzne typy błędów określone przez ciągi Fraza przyczyny są zawsze dodawane na końcu każdego wiersza błędu. Poniższa tabela zawiera informacje o frazach przyczyn interfejsu HTTP API.
Zwiń tę tabelęRozwiń tę tabelę
Fraza przyczynyOpis

AppOfflineWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ błędy aplikacji spowodowały przełączenie aplikacji w tryb offline.
AppPoolTimerWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ proces puli aplikacji jest zbyt zajęty, przez co obsługa żądania jest niemożliwa.
AppShutdownWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ aplikacja została automatycznie zamknięta w odpowiedzi na zasadę administratora.
BadRequestWystąpił błąd analizy podczas przetwarzania żądania.
Client_ResetPołączenie między klientem i serwerem zostało zakończone, zanim żądanie zostało przypisane do procesu roboczego. Najczęstszą przyczyną takiego działania jest przedwczesne zakończenie połączenia z serwerem przez klienta.
Connection_Abandoned_By_AppPoolProces roboczy z puli aplikacji został nieoczekiwanie zakończony lub oczekujące żądanie zostało oddzielone (osierocone) przez zamknięcie jego dojścia.
Connection_Abandoned_By_ReqQueueProces roboczy z puli aplikacji został nieoczekiwanie zakończony lub oczekujące żądanie zostało oddzielone (osierocone) przez zamknięcie jego dojścia. Sytuacja specyficzna dla systemów Windows Vista i Windows Server 2008 oraz ich nowszych wersji.
Connection_DroppedPołączenie między klientem i serwerem zostało zakończone, zanim serwer mógł wysłać ostatni pakiet odpowiedzi. Najczęstszą przyczyną takiego działania jest przedwczesne zakończenie połączenia z serwerem przez klienta.
Connection_Dropped_List_FullLista przerwanych połączeń między klientami i serwerem jest pełna. Sytuacja specyficzna dla systemów Windows Vista i Windows Server 2008 oraz ich nowszych wersji.
ConnLimitWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ osiągnięto lub przekroczono limit połączeń na poziomie witryny.
Connections_RefusedPamięć jądra NonPagedPool osiągnęła wartość poniżej 20 MB i stos http.sys przestał odbierać nowe połączenia.
DisabledWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ administrator przełączył aplikację w tryb offline.
EntityTooLargeRozmiar jednostki przekroczył maksymalną dozwoloną wartość.
FieldLengthLimit długości pola został przekroczony.
ForbiddenPodczas analizy napotkano niedozwolony element lub sekwencję.
NagłówekBłąd analizy w nagłówku.
HostnameWystąpił błąd analizy podczas przetwarzania nazwy hosta.
InternalWystąpił wewnętrzny błąd serwera (HTTP 500).
Invalid_CR/LFWystąpił niedozwolony powrót karetki lub znak nowego wiersza.
LengthRequiredBrak wymaganej wartości długości.
N/AWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ wystąpił błąd wewnętrzny (na przykład błąd przydziału pamięci lub konflikt na liście rezerwacji adresów URL).
N/IWystąpił niezaimplementowany błąd (HTTP 501) lub błąd niedostępnej usługi (HTTP 503) z powodu nieznanego kodowania transferu.
NumberWystąpił błąd analizy podczas przetwarzania liczby.
PreconditionBrak wymaganego warunku wstępnego.
QueueFullWystąpił błąd niedostępnej usługi (HTTP 503). Usługa jest niedostępna, ponieważ kolejka żądań aplikacji jest pełna.
RequestLengthLimit długości żądania został przekroczony.
Timer_AppPoolPołączenie wygasło, ponieważ żądanie oczekiwało w kolejce puli aplikacji zbyt długo i aplikacja serwera nie mogła usunąć żądania z kolejki i przetworzyć go. Ten limit czasu jest określony w wartości ConnectionTimeout. Domyślnie ta wartość jest ustawiona na dwie minuty.
Timer_ConnectionIdlePołączenie wygasło i jest bezczynne. Domyślnie wartość ConnectionTimeout jest ustawiona na dwie minuty.
Timer_EntityBodyPołączenie wygasło, zanim treść jednostki żądania została odebrana. Określenie, że żądanie zawiera treść jednostki, powoduje uruchomienie licznika Timer_EntityBody w interfejsie HTTP API. Początkowo limit dla tego licznika jest ustawiony na wartość ConnectionTimeout (zwykle dwie minuty). Za każdym razem, gdy dla tego żądania jest otrzymywane inne wskazanie danych, interfejs HTTP API resetuje licznik w celu zapewnienia dodatkowego czasu określonego w ustawieniu ConnectionTimeout dla połączenia.
Timer_HeaderWaitPołączenie wygasło, ponieważ analiza nagłówka dla żądania trwała dłużej, niż dozwolono (domyślnie 2 minuty).
Timer_MinBytesPerSecondPołączenie wygasło, ponieważ klient nie otrzymywał odpowiedzi w odpowiednim czasie. Szybkość wysyłania odpowiedzi była niższa od domyślnej wartości (240 B/s). Tę wartość można zmienić przy użyciu właściwości metabazy MinFileBytesPerSec.
Timer_ReqQueuePołączenie wygasło, ponieważ żądanie oczekiwało w kolejce puli aplikacji zbyt długo i aplikacja serwera nie mogła usunąć żądania z kolejki. Ten limit czasu jest określony w wartości ConnectionTimeout. Domyślnie ta wartość jest ustawiona na dwie minuty. Sytuacja specyficzna dla systemów Windows Vista i Windows Server 2008 oraz ich nowszych wersji.
Timer_ResponseZastrzeżone. Obecnie nieużywane.
Timer_SslRenegotiation Połączenie wygasło, ponieważ ponowne negocjowanie protokołu SSL między klientem a serwerem trwało dłużej, niż dozwolono (domyślnie 2 minuty).
URLWystąpił błąd analizy podczas przetwarzania adresu URL.
URL_LengthRozmiar adresu URL przekracza maksymalną dozwoloną wartość.
VerbWystąpił błąd analizy podczas przetwarzania zlecenia.
Version_N/SWystąpił błąd nieobsługiwanej wersji (HTTP 505).

Materiały referencyjne

Aby uzyskać więcej informacji dotyczących dodawania rejestrowanych pól w funkcji rejestrowania błędów HTTP programu IIS, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
832975 W programach IIS 6.0 i IIS 7.0 dostępne są już dodatkowe właściwości do rejestrowania w pliku Httperr#.log

Właściwości

Numer ID artykułu: 820729 - Ostatnia weryfikacja: 8 stycznia 2014 - Weryfikacja: 5.0
Informacje zawarte w tym artykule dotyczą:
  • 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
Słowa kluczowe: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Przekaż opinię

 

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