Protokolování chyb v rozhraní HTTP API

Souhrn

Tento článek popisuje možnosti protokolování chyb rozhraní API protokolu HTTP.

Některé chyby, ke kterým dochází v aplikaci založené na protokolu HTTP jsou automaticky zpracovány rozhraním API HTTP namísto předávaný zpět do aplikace pro zpracování. K tomuto chování dochází, protože četnost takových chyb může jinak zahlcení protokolu událostí nebo obslužné rutiny aplikace.

Následující témata popisují různé aspekty protokolování chyb rozhraní API protokolu HTTP.

Řešení

Konfigurace protokolování chyb rozhraní API protokolu HTTP

Tři hodnoty registru pod klíčem HTTP \Parameters řídit protokolování chyb rozhraní API protokolu HTTP. Tyto klíče jsou umístěny v následujícím klíči registru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Poznámka: V novějších verzích operačního systému Windows může změnit umístění a forma hodnoty konfigurace.

Musíte mít pověření správce nebo místní systém ke změně hodnot registru a chcete zobrazit nebo změnit soubory protokolu a složku, která je obsahuje.

Informace o konfiguraci hodnoty registru je načíst při spuštění ovladače rozhraní API protokolu HTTP. Proto pokud změníte nastavení, je třeba zastavit a restartujte ovladač načíst nové hodnoty. Chcete-li to provést, zadejte následující příkazy konzoly:
příkaz net stop http
příkaz net start http
Název souboru protokolu se používá následující konvence:
httperr + pořadové číslo protokolu
Příklad: httperr4.log
Soubory protokolu jsou uvedená, jakmile dosáhnou maximální velikosti, který určuje hodnotu registru ErrorLogFileTruncateSize . Tato hodnota nemůže být menší než 1 megabajt (MB).

Pokud konfigurace protokolování chyb není platná nebo jakéhokoli druhu selhání dochází během zapisuje soubory protokolu HTTP API, rozhraní API protokolu HTTP používá protokolování událostí upozornění správcům, že nedochází k protokolování chyb.

Následující tabulka popisuje hodnoty registru konfigurace.
Hodnota registruPopis
EnableErrorLoggingDWORD můžete nastavit na hodnotu TRUE Chcete-li povolit protokolování chyb nebo false zakázat. Výchozí hodnota je TRUE.
ErrorLogFileTruncateSizeHodnota DWORD , která určuje maximální velikost souboru protokolu chyb v bajtech. Výchozí hodnota je jeden MB (0x100000).

Poznámka: Zadaná hodnota nesmí být menší než výchozí hodnotu.
ErrorLoggingDirŘetězec , který určuje složku, kde umístí rozhraní API protokolu HTTP protokolování souborů.

Rozhraní HTTP API vytvoří v zadané složce podsložku HTTPERR a uloží soubory protokolu v podsložce. Tato podsložka a soubory protokolu se zobrazí stejné nastavení oprávnění. Správce a místní systémové účty mají úplný přístup. Ostatní uživatelé nemají přístup.

Je výchozí složku při složce není zadán v registru:
%SystemRoot%\System32\LogFiles


Poznámka: Řetězcová hodnota ErrorLoggingDir musí být úplnou místní cestu. Může však obsahovat % SystemRoot %. Nelze použít síťovou jednotku nebo síťové sdílené položky.

zpět na horní

Formát protokoly chyb rozhraní HTTP API

Soubory protokolu chyb rozhraní HTTP API obecně, mají stejný formát jako chybové protokoly W3C, kromě toho, že soubory protokolu chyb rozhraní HTTP API neobsahují záhlaví sloupců. Každý řádek protokolu chyb rozhraní HTTP API zaznamenává jednu chybu. Pole se objeví v určitém pořadí. Znak jedné mezery (0x0020) odděluje jednotlivá pole z předchozího pole. V každém poli Nahradit znaménka plus (0x002B) mezery, tabulátory a netisknutelné řídicí znaky.

Následující tabulka uvádí pole a pořadí polí v záznamu protokolu chyb.
PolePopis
DatumV poli Datum formát W3C. Toto pole je založeno na koordinovaný světový čas (UTC). Pole datum je vždy deset znaků ve tvaru rrrr-MM-DD. 1. května 2003 například vyjádřena jako 2003-05-01.
ČasPole čas formát W3C. Toto pole je založeno na čas UTC. Pole čas je vždy osm znaků ve formě MM:HH:SS. Příklad 5:30 PM (UTC) se vyjadřuje v 17:30:00.
IP adresa klientaAdresa IP klientem. Hodnota v tomto poli může být buď adresu IPv4 nebo IPv6. Pokud se adresa IP klienta je adresa IPv6, Id_oboru pole také součástí adresu.
Port klientaČíslo portu pro klientem.
Adresa IP serveruAdresa IP příslušného serveru. Hodnota v tomto poli může být buď adresu IPv4 nebo IPv6. Pokud je adresa IP serveru adresu IPv6, Id_oboru pole také součástí adresu.
Port serveruČíslo portu příslušného serveru.
Verze protokoluVerze protokolu, který je používán.


Pokud připojení nebylo byla analyzována dostatečně určit verzi protokolu, pomlčku (0x002D) slouží jako zástupný symbol pro prázdné pole.

Pokud hlavní číslo verze a číslo podverze je analyzován je větší než nebo rovna 10 verze je uvedena jako HTTP /?.?.
SlovesoStav sloveso, který poslední požadavek tedy analyzovat průchody. Neznámá akce jsou zahrnuty, ale všechny operace, které je větší než 255 bajtů je zkrácena na této délce. Pokud operace není k dispozici, pomlčku (0x002D) slouží jako zástupný symbol pro prázdné pole.
CookedURL + dotazAdresa URL a libovolný dotaz, který je spojen s ním jsou přihlášeni jako jedno pole, které jsou odděleny otazníkem (0x3F). Toto pole je zkrácena na jeho limit délky 4096 bajtů.

Pokud tato adresa URL byla analyzována ("vařená"), je zaznamenána v místní znakové stránky převodu a je považována za pole ve formátu Unicode.

Pokud tato adresa URL nebyla byla analyzována ("vařená") v době přihlášení, je přesně, kopírování bez jakékoli převod znakové sady Unicode.

Pokud rozhraní API protokolu HTTP nelze analyzovat tuto adresu URL, pomlčku (0x002D) slouží jako zástupný symbol pro prázdné pole.
Stav protokoluStav protokolu nemůže být větší než 999.


Pokud stav protokolu odpovědi na požadavek je k dispozici, je zaznamenána v tomto poli.

Pokud stav protokolu není k dispozici, pomlčku (0x002D) slouží jako zástupný symbol pro prázdné pole.
ID sítěV této verzi rozhraní API protokolu HTTP nepoužívá. V tomto poli se vždy zobrazí zástupný znak pomlčku (0x002D).
Z důvodu fráziToto pole obsahuje řetězec, který určuje typ chyby, který je právě přihlášen. Nikdy toto pole zůstane prázdné.
Název frontyTento název fronty požadavku.
Následující ukázkové řádky jsou z protokolu chyb rozhraní 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 /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 80-----Timer_MinBytesPerSecond 64388 127.0.0.1
zpět na horní

Druhy chyb, které protokoly HTTP API

Rozhraní API protokolu HTTP protokoluje chybové odpovědi na klienty, časové limity připojení, osamocené požadavky a přerušená připojení, které jsou nesprávně zpracována.

Následující seznam uvádí druhy chyb, které protokoly HTTP API:
  • Odpovědi na klienty Rozhraní API protokolu HTTP odešle odpověď klientovi, například 400 chybu, která je způsobena chyba analýzy poslední přijatý požadavek. Po rozhraní API protokolu HTTP odešle odpověď chybě, ukončí připojení.
  • Časové limity připojení Rozhraní API protokolu HTTP vyprší časový limit připojení. Pokud požadavek čeká kdy vyprší časový limit připojení, žádost lze poskytnout další informace o připojení v protokolu chyb.
  • Orphaned požadavky Zatímco je stále ve frontě požadavků, které jsou směrovány do tohoto procesu se neočekávaně zastaví proces uživatelského režimu. Rozhraní API protokolu HTTP protokoluje v protokolu chyb osamocené požadavky.
Typy chyby jsou označeny Fráze z důvodu řetězce, které se vždy zobrazí jako poslední pole každého řádku chybu. Následující tabulka uvádí důvod věty rozhraní API protokolu HTTP.
Z důvodu fráziPopis

AppOfflineNení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože chyby aplikací způsobilo, že aplikace do režimu offline.
AppPoolTimerNení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože je příliš zaneprázdněn a nemůže zpracovat požadavek procesu fondu aplikací.
AppShutdownNení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože aplikace ukončena automaticky v reakci na správce zásad.
BadRequestPři zpracování požadavku došlo k chybě analýzy.
Client_ResetPřipojení mezi klientem a serverem byla ukončena před žádost může být přiřazen pracovní proces. Nejčastější příčinou tohoto chování je klient předčasně ukončí připojení k serveru.
Connection_Abandoned_By_AppPoolPracovní proces ve fondu aplikací nemá neočekávaně nebo osamoceného čekající žádosti ukončením její úchyt.
Connection_Abandoned_By_ReqQueuePracovní proces ve fondu aplikací nemá neočekávaně nebo osamoceného čekající žádosti ukončením její úchyt. Specifické pro systém Windows Vista a novější verze a Windows Server 2008 a novější verze.
Connection_DroppedPřipojení mezi klientem a serverem byla ukončena dříve, než server může odeslat paket konečné odpovědi. Nejčastější příčinou tohoto chování je klient předčasně ukončí připojení k serveru.
Connection_Dropped_List_FullSeznam přerušená připojení mezi klienty a serverem je plná. Specifické pro systém Windows Vista a novější verze a Windows Server 2008 a novější verze.
ConnLimitNení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože limit připojení na úrovni webu byl dosažen nebo překročen.
Connections_RefusedJádra paměti NonPagedPool klesla pod 20MB a ovladač http.sys přestal přijímat nová připojení
ZakázánoNení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože správce učinil aplikace v režimu offline.
EntityTooLargeEntity k překročení maximální povolené velikosti.
Hodnota FieldLengthByla překročena maximální délka pole.
ZakázánoPři rozkládání došlo zakázané prvku nebo sekvence.
ZáhlavíDošlo k chybě analýzy v záhlaví.
Název hostiteleChyba analýzy došlo k chybě při zpracování název hostitele.
VnitřníDošlo k chybě interního serveru (chyby HTTP 500).
Invalid_CR/LFNelegální návrat nebo řádku informačního kanálu došlo k chybě.
LengthRequiredChybí požadovaná délka.
N/ANení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože došlo k vnitřní chybě (například selhání přidělení paměti nebo seznam adres URL rezervace konflikt).
N/IDošlo k chybě není implementováno (chyby HTTP 501) nebo (chyby HTTP 503) došlo k chybě není k dispozici služba vzhledem neznámé kódování přenosu.
ČísloPři zpracování čísla došlo k chybě analýzy.
PředpoklademChybí požadované podmínky.
QueueFullNení k dispozici Chyba služby došlo k chybě (chyby HTTP 503). Služba není k dispozici, protože aplikace fronty požadavků je plná.
RequestLengthByla překročena maximální délka požadavku.
Timer_AppPoolPřipojení vypršela, protože požadavek čekala příliš dlouho ve frontě fondu aplikací pro serverové aplikace vyřazuje z fronty a jeho zpracování. Doba trvání časového limitu je ConnectionTimeout. Ve výchozím nastavení je tato hodnota nastavena na dvě minuty.
Timer_ConnectionIdleSpojení vypršelo a zůstává v nečinnosti. Výchozí doba trvání ConnectionTimeout je dvě minuty.
Timer_EntityBodyPřipojení vypršel před tělo entity žádosti byly přijaty. Pokud žádost má jasně tělo entity, zapne rozhraní API protokolu HTTP Timer_EntityBody timer. Zpočátku tento časovač limitu je nastavena na hodnotu ConnectionTimeout (obvykle dvě minuty). Pokaždé, když o této žádosti je přijat další označení dat, rozhraní API protokolu HTTP resetuje časovač připojení další dvě minuty (nebo cokoliv, co je zadáno v ConnectionTimeout).
Timer_HeaderWaitPřipojení vypršela, protože záhlaví analýza požadavku trvalo déle, než je výchozí limit dvě minuty.
Timer_MinBytesPerSecondVypršela platnost připojení, protože nebyl klient obdrží odpověď přiměřenou rychlostí. Rychlost odesílání odpovědí byl pomalejší než výchozí 240 bajtů za sekundu. Tuto funkci lze řídit pomocí vlastnosti metabáze MinFileBytesPerSec .
Timer_ReqQueuePřipojení vypršela, protože požadavek čekala příliš dlouho ve frontě fondu aplikací pro serverové aplikace vyřazuje z fronty. Doba trvání časového limitu je ConnectionTimeout. Ve výchozím nastavení je tato hodnota nastavena na dvě minuty. Specifické pro systém Windows Vista a novější verze a Windows Server 2008 a novější verze.
Timer_ResponseVyhrazena. Aktuálně nejsou používány.
Timer_SslRenegotiation
Připojení vypršela, protože vyjednávání SSL mezi klientem a serverem trval déle než výchozí časový limit dvou minut.
ADRESA URLPři zpracování adresy URL došlo k chybě analýzy.
URL_LengthAdresa URL překročil maximální povolenou velikost.
SlovesoPři zpracování operace došlo k chybě analýzy.
Version_N/S(Chyby HTTP 505) došlo k chybě verze není podporována.

zpět na horní

Odkazy

Další informace o tom, jak přidat další protokolování polí pro protokolování chyb HTTP služby IIS klepněte na následující číslo článku databáze Microsoft Knowledge Base:

832975 další vlastnosti jsou nyní k dispozici pro protokolování v souboru Httperr # .log ve službě IIS 6.0 a IIS 7.0

Vlastnosti

ID článku: 820729 - Poslední kontrola: 16. 1. 2017 - Revize: 2

Váš názor