ID článku: 820729
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje možnosti protokolování chyb rozhraní API protokolu HTTP (Hypertext Transfer Protocol).

Některé chyby, k nimž dochází v aplikacích využívajících protokol HTTP, jsou automaticky zpracovány rozhraním HTTP API a nejsou ke zpracování předány příslušné aplikaci. K tomto chování dochází proto, že frekvence těchto chyb by jinak mohla přeplnit protokol událostí nebo obslužnou rutinu aplikace.

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

Další informace

Konfigurace protokolování chyb rozhraní HTTP API

Chcete-li, abychom protokolování chyb rozhraní HTTP API nakonfigurovali za vás, přejděte k části Automatická oprava. Chcete-li protokolování chyb rozhraní HTTP API nakonfigurovat sami, přejděte k části Manuální oprava.

Automatická oprava



Chcete-li tyto potíže odstranit automaticky, klikněte na tlačítko nebo odkaz Opravit. V dialogovém okně Stažení souboru klikněte na položku Spustit a postupujte podle kroků v průvodci opravou.

Disable HTTP API error logging
Microsoft Fix it 50635
Enable HTTP API error logging
Microsoft Fix it 50634


Poznámky:
  • Tento průvodce může být k dispozici pouze v angličtině. Tato automatická oprava však funguje i pro ostatní jazykové verze systému Windows.
  • Pokud právě nejste u počítače, který má tyto potíže, můžete opravu uložit na jednotku USB Flash nebo na disk CD a spustit ji v příslušném počítači později.



Manuální oprava

Protokolování chyb rozhraní HTTP API určují tři hodnoty registru klíče HTTP \Parameters. 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: Umístění a forma konfiguračních hodnot se může v novějších verzích operačního systému Microsoft Windows změnit.

Ke změně hodnot registru a k zobrazení nebo změně souborů protokolů a složky, která je obsahuje, je třeba, abyste měli oprávnění Administrator/Local System.

Konfigurační informace v hodnotách registru jsou načteny při spuštění ovladače rozhraní HTTP API. Proto pokud změníte toto nastavení, musíte ukončit ovladač a pak jej restartovat, aby byly načteny nové hodnoty. V takovém případě zadejte následující příkazy konzoly:
net stop http
net start http
K pojmenování souborů protokolu je používána následující konvence názvů:
httperr + pořadové číslo + .log
Příklad: httperr4.log
Jakmile je dosaženo maximální velikosti určené hodnotou registru ErrorLogFileTruncateSize, jsou soubory protokolu cyklicky znovu použity. Tato hodnota nemůže být menší než 1 MB.

Pokud konfigurace protokolování chyb není platná nebo pokud během zápisu rozhraní HTTP API do souborů protokolu dojde k libovolnému typu chyby, rozhraní HTTP API použije protokolování událostí a upozorní správce, že nedochází k protokolování chyb.

Následující tabulka popisuje konfigurační hodnoty registru.
Zmenšit tuto tabulkuRozšířit tuto tabulku
Hodnota registruPopis
EnableErrorLoggingPoložka typu DWORD, kterou lze nastavit na hodnotu TRUE, chcete-li povolit protokolování chyb, nebo na hodnotu FALSE, chcete-li protokolování chyb zakázat. Výchozí hodnota je TRUE.
ErrorLogFileTruncateSizePoložka typu DWORD, která určuje maximální velikost souboru protokolu chyb (v bajtech). Výchozí hodnota je 1 MB (0x100000).

Poznámka: Zadaná hodnota nemůže být menší než výchozí hodnota.
ErrorLoggingDirPoložka typu String, která určuje složku, do níž rozhraní HTTP API ukládá soubory protokolů.

Rozhraní HTTP API vytvoří v určené složce podsložku HTTPERR a do této podsložky ukládá soubory protokolů. Tato podsložka a soubory protokolu obdrží stejné nastavení oprávnění. Účty Administrator a Local System mají úplný přístup. Ostatní uživatelé nemají přístup.

Pokud tato složka není v registru určena, je použita následující výchozí složka:
%SystemRoot%\System32\LogFiles

Poznámka: Hodnotou řetězce ErrorLoggingDir musí být úplná místní cesta. Může však obsahovat položku %SystemRoot%. Nelze použít síťovou jednotku nebo sdílenou síťovou složku.

Formát protokolů chyb rozhraní HTTP API

Soubory protokolu chyb rozhraní HTTP API mají obecně stejný formát jako protokoly chyb W3C a jedinou výjimkou: soubory protokolu chyb rozhraní HTTP API neobsahují záhlaví sloupců. Každý řádek protokolu chyb rozhraní HTTP API zaznamenává jednu chybu. Pole jsou uvedena ve specifickém pořadí. Jednotlivá pole jsou oddělena jedním znakem mezery (0x0020). V rámci polí jsou mezery, tabelátory a netisknutelné řídicí znaky nahrazeny znaky plus (0x002B).

V následující tabulce jsou uvedena jednotlivá pole a jejich pořadí v záznamu protokolu chyb.
Zmenšit tuto tabulkuRozšířit tuto tabulku
PolePopis
DatumPole Datum odpovídá formátu W3C. Toto pole využívá formát UTC (Coordinated Universal Time). Pole Datum obsahuje vždy deset znaků ve tvaru RRRR-MM-DD. Příklad: 1. května 2003 je vyjádřeno jako 2003-05-01.
ČasPole Čas odpovídá formátu W3C. Toto pole využívá formát UTC. Pole Čas obsahuje vždy osm znaků ve tvaru MM:HH:SS. Příklad: Čas 17:30 (UTC) je vyjádřen jako 17:30:00.
IP adresa klientaIP adresa příslušného klienta. Hodnotou v tomto poli může být IPv4 adresa nebo IPv6 adresa. Je-li IP adresou klienta IPv6 adresa, je v adrese rovněž zahrnuto pole ScopeId.
Port klientaČíslo portu příslušného klienta.
IP adresa serveruIP adresa příslušného serveru. Hodnotou v tomto poli může být IPv4 adresa nebo IPv6 adresa. Je-li IP adresou serveru IPv6 adresa, je v adrese rovněž zahrnuto pole ScopeId.
Port serveruČíslo portu příslušného serveru.
Verze protokoluVerze používaného protokolu.

Pokud připojení nebylo dostatečně analyzováno a není určena verze protokolu, je jako zástupný symbol pro prázdné pole použita pomlčka (0x002D).

Je-li hlavní číslo verze nebo dílčí číslo verze větší nebo rovno 10, je verze zaznamenána ve tvaru HTTP/?.?.
VerbStav příkazu, který předává posledně analyzovaný požadavek. Jsou zahrnuty i neznámé příkazy. Všechny příkazy delší než 255 bajtů jsou oříznuty na tuto délku. Pokud příkaz není k dispozici, je jako zástupný symbol pro prázdné pole použita pomlčka (0x002D).
Adresa URL s předzpracováním + dotazAdresa URL a libovolný dotaz, který je k ní přidružen, jsou zaznamenány jako jedno pole. Jako oddělovač je použit otazník (0x3F). Toto pole je oříznuto na 4 096 bajtů.

Pokud tato adresa URL byla analyzována („předzpracována“), je zaznamenána s použitím převodu podle místní znakové stránky a považována za pole typu Unicode.

Pokud tato adresa URL nebyla v době protokolování analyzována („předzpracována“), je zkopírována přesně, bez převodu Unicode.

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

Je-li k dispozici stav protokolu odpovědi na požadavek, je zaznamenán do tohoto pole.

Pokud stav protokolu není k dispozici, je jako zástupný symbol pro prázdné pole použita pomlčka (0x002D).
ID webuV této verzi rozhraní HTTP API se nepoužívá. V tomto poli je vždy uvedena pomlčka (0x002D).
Text důvoduToto pole obsahuje řetězec identifikující typ zaznamenávané chyby. Toto pole není nikdy ponecháno prázdné.
Název frontyToto je název fronty požadavku.
Následující řádky představují ukázku 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 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

Typy chyb, které rozhraní HTTP API zaznamenává

Rozhraní HTTP API protokoluje chybové odpovědi klientům, vypršení časových limitů připojení, osamocené požadavky a přerušená připojení, která jsou zpracovávána nesprávně.

V následujícím seznamu jsou uvedeny typy chyb, které rozhraní HTTP API zaznamenává:
  • Odpovědi klientům Rozhraní HTTP API odešle klientovi chybovou odpověď, například chybu 400, která je způsobena chybou analýzy v posledním přijatém požadavku. Jakmile rozhraní HTTP API odešle chybovou odpověď, ukončí připojení.
  • Vypršení časových limitů připojeníV rozhraní HTTP API vyprší časový limit připojení. Pokud v okamžiku vypršení časového limitu připojení čeká na vyřízení nějaký požadavek, je tento požadavek v protokolu chyb použit k poskytnutí dalších informací o připojení.
  • Osamocené požadavky Proces v uživatelském režimu neočekávaně ukončí práci, přestože dosud ve frontě existují požadavky směrované na tento proces. Rozhraní HTTP API zaznamená osamocené požadavky do souboru protokolu.
Konkrétní typy chyb jsou určeny řetězcem Text důvodu, který se zobrazí jako poslední pole na konci každého chybového řádku. V následující tabulce jsou uvedeny jednotlivé texty důvodu rozhraní HTTP API.
Zmenšit tuto tabulkuRozšířit tuto tabulku
Text důvoduPopis

AppOfflineDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici, protože chyby aplikace způsobily přechod aplikace do režimu offline.
AppPoolTimerDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici, protože proces fondu aplikací je příliš zaneprázdněn a nemůže zpracovat požadavek.
AppShutdownDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici, protože aplikace je automaticky ukončena v reakci na zásady správce.
BadRequestPři zpracování požadavku došlo k chybě analýzy.
Client_ResetPropojení mezi klientem a serverem bylo ukončeno, protože požadavek nebylo možné přiřadit pracovnímu procesu. Nejobvyklejší příčinou tohoto chování je situace, kdy klient předčasně ukončí připojení k serveru.
Connection_Abandoned_By_AppPoolPracovní proces z fondu aplikací byl neočekávaně ukončen nebo způsobil osamocení nevyřízené žádosti zavřením jejího popisovače.
Connection_Abandoned_By_ReqQueuePracovní proces z fondu aplikací byl neočekávaně ukončen nebo způsobil osamocení nevyřízené žádosti zavřením jejího popisovače. Specifické pro systémy Windows Vista a Windows Server 2008.
Connection_DroppedPropojení mezi klientem a serverem bylo ukončeno, protože server nemohl poslat finální paket odpovědi. Nejobvyklejší příčinou tohoto chování je situace, kdy klient předčasně ukončí připojení k serveru.
Connection_Dropped_List_FullSeznam přerušených připojení mezi klienty a serverem je plný. Specifické pro systémy Windows Vista a Windows Server 2008.
ConnLimitDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici, protože bylo dosaženo limitu připojení na úrovni webu.
Connections_RefusedPaměť jádra NonPagedPool klesla pod 20 MB a zásobník http.sys přestal přijímat nová připojení.
DisabledDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici, protože správce převedl aplikaci do režimu offline.
EntityTooLargeEntita přesáhla maximální povolenou velikost.
FieldLengthByl překročen limit délky pole.
ForbiddenPři analýze byl zjištěn zakázaný element nebo posloupnost.
HeaderDošlo k chybě analýzy v záhlaví.
HostnamePři zpracování názvu hostitele došlo k chybě analýzy.
InternalDošlo k interní chybě serveru (chyba HTTP 500).
Invalid_CR/LFByl zjištěn neplatný znak CR nebo LF.
LengthRequiredNebyla nalezena požadovaná hodnota délky.
Není k dispoziciDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici z důvodů interní chyby (například chyba přidělení paměti).
N/IDošlo k chybě Není implementováno (chyba HTTP 501) nebo k chybě Služba není k dispozici (chyba HTTP 503) z důvodů neznámého kódování přenosu.
NumberPři zpracování čísla došlo k chybě analýzy.
PreconditionNebyla nalezena požadovaná předběžná podmínka.
QueueFullDošlo k chybě Služba není k dispozici (chyba HTTP 503). Služba není k dispozici, protože fronta požadavků aplikace je plná.
RequestLengthByl překročen limit délky požadavku.
Timer_AppPoolPlatnost připojení vypršela, protože požadavek příliš dlouho čekal ve frontě fondu aplikací, než jej aplikaci serveru vyřadila z fronty a zpracovala. Délka časového limitu je ConnectionTimeout. Ve výchozím nastavení je tato hodnota nastavena na 2 minuty.
Timer_ConnectionIdlePlatnost připojení vypršela a připojení zůstane nečinné. Výchozí hodnotou ConnectionTimeout jsou dvě minuty.
Timer_EntityBodyPlatnost připojení vypršela dříve, než dorazilo tělo entity požadavku. Je-li jasné, že požadavek obsahuje tělo entity, rozhraní HTTP API aktivuje časovač Timer_EntityBody. Limit tohoto časovače je nejprve nastaven na hodnotu ConnectionTimeout (zpravidla 2 minuty). Vždy, když je v rámci tohoto požadavku přijata další indikace dat, rozhraní HTTP API resetuje tento časovač a poskytne připojení další dvě minuty (nebo jinou dobu určenou nastavením ConnectionTimeout).
Timer_HeaderWaitPlatnost připojení vypršela, protože analýza záhlaví požadavku trvala déle, než je výchozí limit dvou minut.
Timer_MinBytesPerSecondPlatnost připojení vypršela, protože klient nedostával odpověď přiměřenou rychlostí. Rychlost odesílání odpovědi byla nižší než výchozí nastavení 240 bajtů/s. Toto chování lze řídit pomocí vlastnosti metabáze MinFileBytesPerSec.
Timer_ReqQueuePlatnost připojení vypršela, protože požadavek příliš dlouho čekal ve frontě fondu aplikací, než jej aplikaci serveru vyřadila z fronty. Délka časového limitu je ConnectionTimeout. Ve výchozím nastavení je tato hodnota nastavena na 2 minuty. Specifické pro systémy Windows Vista a Windows Server 2008.
Timer_ResponseVyhrazeno. Není nyní používáno.
Timer_SslRenegotiation Časový limit připojení vypršel, protože nové vyjednávání SSL mezi klientem a serverem trvalo déle než výchozí časový limit, tedy dvě minuty.
URLPři zpracování adresy URL došlo k chybě analýzy.
URL_LengthAdresa URL přesáhla maximální povolenou velikost.
VerbPři zpracování příkazu došlo k chybě analýzy.
Version_N/SDošlo k chybě Verze není podporována (chyba HTTP 505).

Odkazy

Další informace o přidání dalších polí pro protokolování chyb IIS HTTP naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
832975 Další vlastnosti jsou nyní k dispozici pro protokolování v souboru Httperr#.log v rámci služby IIS 6.0 a IIS 7.0

Vlastnosti

ID článku: 820729 - Poslední aktualizace: 30. listopadu 2012 - Revize: 8.0
Klíčová slova: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Dejte nám zpětnou vazbu

 

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