ID článku: 820729
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

Súhrn

V tomto článku sú popísané funkcie zapisovania chýb do denníkov rozhraní API protokolu HTTP Hypertext Transfer Protocol).

Niektoré chyby v aplikáciách využívajúcich protokol HTTP automaticky spracováva rozhranie API protokolu HTTP a neodovzdávajú sa na spracovanie späť do danej aplikácie. K takémuto správaniu dochádza preto, lebo frekvencia takýchto chýb by mohla zahltiť denník udalostí alebo obslužný program aplikácie.

V nasledujúcich témach sú popísané rôzne aspekty zapisovania chýb do denníkov rozhrania API protokolu HTTP:

Ďalšie informácie

Konfigurácia zapisovania chýb do denníkov rozhrania API protokolu HTTP

Ak chcete, aby sme zapisovanie chýb do denníkov rozhrania API protokolu HTTP nakonfigurovali za vás, prejdite do časti Opravte to za mňa. Ak chcete zapisovanie chýb do denníkov rozhrania API protokolu HTTP nakonfigurovať sami, prejdite do časti Ja to vyriešim.

Opravte to za mňa



Ak chcete tento problém vyriešiť automaticky, kliknite na prepojenie alebo tlačidlo Opraviť tento problém. V dialógovom okne Prevzatie súboru kliknite na položku Spustiť a postupujte podľa pokynov Sprievodcu nástroja Fix it.

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


Poznámky
  • Tento sprievodca môže byť dostupný iba v angličtine. Automatickú opravu je však možné použiť aj pre ostatné jazykové verzie systému Windows.
  • Ak nepracujete s počítačom, v ktorom sa vyskytol problém, môžete riešenie Fix it uložiť na jednotku flash alebo na disk CD a potom ho môžete spustiť v problémovom počítači.



Ja to vyriešim

Zapisovanie chýb do denníkov rozhrania API protokolu HTTP riadia tri hodnoty databázy Registry v kľúči HTTP \Parameters. Tieto kľúče sa nachádzajú v nasledujúcom kľúči databázy Registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Poznámka: Umiestnenie a forma hodnôt konfigurácie sa môžu v novších verziách operačného systému Microsoft Windows zmeniť.

Ak chcete zmeniť hodnoty databázy Registry a zobraziť alebo upraviť súbory denníkov a priečinok, ktorý tieto súbory obsahuje, musíte mať poverenia na úrovni konta Administrator alebo Local System.

Informácie o konfigurácii v hodnotách databázy Registry sa načítavajú pri spustení ovládača rozhrania API protokolu HTTP. Platí preto, že ak nastavenia zmeníte, musíte ovládač zastaviť a potom znova spustiť, aby sa načítali nové hodnoty. Ak to chcete vykonať, zadajte nasledujúce príkazy konzoly:
net stop http
net start http
Pri pomenovávaní súborov denníkov sa používa nasledujúce pravidlo vytvárania názvov:
httperr + poradové číslo + .log
Príklad: httperr4.log
Súbory denníkov sa cyklujú, keď dosiahnu maximálnu veľkosť určenú hodnotou ErrorLogFileTruncateSize databázy Registry. Táto hodnota nemôže byť menšia než jeden megabajt (MB).

Ak je konfigurácia zapisovania chýb do denníkov neplatná alebo ak sa počas zápisu rozhrania API protokolu HTTP do súborov denníkov vyskytne ľubovoľný typ zlyhania, rozhranie API protokolu HTTP pomocou funkcie zapisovania udalostí do denníkov upozorní správcov na nefunkčnosť zapisovania chýb do denníkov.

V nasledujúcej tabuľke sú popísané hodnoty konfigurácie v databáze Registry.
Zbaliť túto tabuľkuRozbaliť túto tabuľku
Hodnota databázy RegistryPopis
EnableErrorLoggingHodnota DWORD, ktorú môžete nastaviť na hodnotu TRUE, ak chcete zapisovanie chýb do denníkov zapnúť, alebo na hodnotu FALSE, ak chcete zapisovanie chýb do denníkov vypnúť. Predvolená hodnota je TRUE.
ErrorLogFileTruncateSizeHodnota DWORD, ktorá určuje maximálnu veľkosť súboru denníka chýb v bajtoch. Predvolenou hodnotou je jeden megabajt (0x100000).

Poznámka: Zadaná hodnota nesmie byť menšia než predvolená hodnota.
ErrorLoggingDirReťazcová hodnota určujúca priečinok, do ktorého rozhranie API protokolu HTTP ukladá súbory denníkov.

Rozhranie API protokolu HTTP vytvára v zadanom priečinku podpriečinok HTTPERR, do ktorého ukladá súbory denníkov. Tento podpriečinok a súbory denníkov majú rovnaké nastavenia povolení. Kontá Administrator a Local System majú úplný prístup. Ostatní používatelia prístup nemajú.

Ak v databáze Registry nie je zadaný žiadny priečinok, používa sa nasledujúci predvolený priečinok:
%SystemRoot%\System32\LogFiles

Poznámka: Reťazcová hodnota ErrorLoggingDir musí predstavovať úplnú lokálnu cestu. Môže však obsahovať reťazec %SystemRoot%. Sieťovú jednotku ani zdieľané sieťové umiestnenie nemožno použiť.

Formát denníkov chýb rozhrania API protokolu HTTP

Súbory denníkov chýb rozhrania API protokolu HTTP majú vo všeobecnosti rovnaký formát ako denníky chýb konzorcia W3C, neobsahujú však názvy stĺpcov. V každom riadku denníka chýb rozhrania API protokolu HTTP je zaznamenaná jedna chyba. Polia sú uvedené v určenom poradí. Každé pole je od predchádzajúceho oddelené znakom jednej medzery (0x0020). V každom poli sú znaky medzier, tabulátory a netlačiteľné riadiace znaky nahradené znamienkami plus (0x002B).

V nasledujúcej tabuľke sú uvedené polia a ich poradie v zázname denníka chýb.
Zbaliť túto tabuľkuRozbaliť túto tabuľku
FieldPopis
DátumV poli Date sa používa formát konzorcia W3C. V tomto poli sa používa čas UTC (Coordinated Universal Time). Pole Date vždy obsahuje desať znakov vo formáte RRRR-MM-DD. Napríklad 1. máj 2003 je vyjadrený ako 2003-05-01.
TimeV poli Time sa používa formát konzorcia W3C. V tomto poli sa používa čas UTC. Pole Time vždy obsahuje osem znakov vo formáte MM:HH:SS. Napríklad čas 17:30 (UTC) je vyjadrený ako 17:30:00.
Client IP AddressAdresa IP klienta, ktorého sa týka príslušná chyba. Hodnotou v tomto poli môže byť adresa protokolu IPv4 alebo protokolu IPv6. Ak je adresou IP klienta adresa protokolu IPv6, v adrese je uvedené aj pole ScopeId.
Client PortČíslo portu klienta, ktorého sa týka príslušná chyba.
Server IP AddressAdresa IP servera, ktorého sa týka príslušná chyba. Hodnotou v tomto poli môže byť adresa protokolu IPv4 alebo protokolu IPv6. Ak je adresou IP servera adresa protokolu IPv6, v adrese je uvedené aj pole ScopeId.
Server PortČíslo portu servera, ktorého sa týka príslušná chyba.
Protocol VersionVerzia používaného protokolu.

Ak sa pripojenie dostatočne neanalyzovalo na to, aby sa určila verzia protokolu, v prázdnom poli sa ako zástupný symbol použije spojovník (0x002D).

Ak je analyzované číslo hlavnej alebo vedľajšej verzie väčšie alebo rovné 10, verzia sa do denníka zaznamená ako reťazec HTTP/?.?.
VerbStav príkazu odovzdaný naposledy analyzovanou požiadavkou. Zahŕňajú sa aj neznáme príkazy, no všetky príkazy dlhšie než 255 bajtov sa skrátia na túto dĺžku. Ak príkaz nie je k dispozícii, v prázdnom poli sa ako zástupný symbol použije spojovník (0x002D).
CookedURL + QueryAdresa URL a všetky súvisiace dotazy sa zapisujú ako jedno pole, ktoré je oddelené otáznikom (0x3F). Toto pole sa skracuje na maximálnej hodnote dĺžky 4 096 bajtov.

Ak sa táto adresa URL analyzovala, zapíše sa použitím lokálnej konverzie kódovej stránky a spracuje sa ako pole vo formáte Unicode.

Ak sa táto adresa URL v čase zapísania do denníka neanalyzovala, presne sa skopíruje bez konverzie do formátu Unicode.

Ak rozhranie API protokolu HTTP nemôže túto adresu URL analyzovať, v prázdnom poli sa ako zástupný symbol použije spojovník (0x002D).
Protocol StatusStav protokolu nemôže mať vyššiu hodnotu než 999.

Ak je k dispozícii stav protokolu odpovede na požiadavku, zapíše sa do tohto poľa.

Ak stav protokolu nie je k dispozícii, v prázdnom poli sa ako zástupný symbol použije spojovník (0x002D).
SiteIdNepoužíva sa v tejto verzii rozhrania API protokolu HTTP. V tomto poli sa ako zástupný symbol vždy zobrazuje spojovník (0x002D).
Reason PhraseToto pole obsahuje reťazec, ktorý identifikuje typ zapisovanej chyby. Toto pole nikdy nezostáva prázdne.
Queue NameNázov frontu požiadaviek.
Nižšie sú uvedené príklady riadkov z denníka chýb rozhrania API protokolu HTTP:
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 chýb zapisovaných do denníkov rozhrania API protokolu HTTP

Rozhranie API protokolu HTTP zapisuje odpovede na chyby pre klientov, uplynutia časového limitu pripojenia, osamotené požiadavky a nesprávne spracované prerušené pripojenia.

V nasledujúcom zozname sú uvedené typy chýb, ktoré rozhranie API protokolu HTTP zapisuje do denníkov:
  • Odpovede pre klientov: Rozhranie API protokolu HTTP odosiela klientovi odpoveď s chybou, napríklad chybu 400, ktorá je spôsobená chybou analýzy v naposledy prijatej požiadavke. Keď rozhranie API protokolu HTTP odošle odpoveď s chybou, ukončí pripojenie.
  • Uplynutia časového limitu pripojenia: Rozhranie API protokolu HTTP ukončí časový limit pripojenia. Ak pri uplynutí časového limitu pripojenia existuje čakajúca požiadavka, daná požiadavka sa použije na poskytnutie ďalších informácií o pripojení v denníku chýb.
  • Osamotené požiadavky: Proces v režime používateľa sa neočakávane ukončí, pričom na daný proces sú stále nasmerované požiadavky vo fronte. Rozhranie API protokolu HTTP zapíše osamotené požiadavky do denníka chýb.
Konkrétne typy chýb sú označené reťazcami frázy príčiny, ktoré sú vždy uvedené ako posledné pole v každom riadku chyby. Frázy príčiny rozhrania API protokolu HTTP sú uvedené v nasledujúcej tabuľke.
Zbaliť túto tabuľkuRozbaliť túto tabuľku
Fráza príčinyPopis

AppOfflineVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože chyby aplikácie spôsobili prechod aplikácie do režimu offline.
AppPoolTimerVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože proces fondu aplikácií je príliš zaneprázdnený a nemôže spracovať požiadavku.
AppShutdownVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože aplikácia sa automaticky vypla v odpovedi na politiku správcu.
BadRequestPri spracovaní požiadavky sa vyskytla chyba analýzy.
Client_ResetPripojenie medzi klientom a serverom bolo ukončené skôr, než bolo možné priradiť požiadavku k pracovnému procesu. Najčastejšou príčinou tohto správania je skutočnosť, že klient predčasne ukončil svoje pripojenie k serveru.
Connection_Abandoned_By_AppPoolPracovný proces z fondu aplikácií sa neočakávane ukončil alebo vytvoril z čakajúcej požiadavky osamotenú požiadavku tým, že zatvoril jej popisovač.
Connection_Abandoned_By_ReqQueuePracovný proces z fondu aplikácií sa neočakávane ukončil alebo vytvoril z čakajúcej požiadavky osamotenú požiadavku tým, že zatvoril jej popisovač. Táto chyba sa týka systémov Windows Vista a Windows Server 2008.
Connection_DroppedPripojenie medzi klientom a serverom bolo ukončené skôr, než mohol server odoslať svoj paket s konečnou odpoveďou. Najčastejšou príčinou tohto správania je skutočnosť, že klient predčasne ukončil svoje pripojenie k serveru.
Connection_Dropped_List_FullZoznam prerušených pripojení medzi klientmi a serverom je plný. Táto chyba sa týka systémov Windows Vista a Windows Server 2008.
ConnLimitVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože bol dosiahnutý alebo prekročený limit pripojení na úrovni lokality.
Connections_RefusedPamäť jadra NonPagedPool klesla pod 20 MB a ovládač http.sys prestal prijímať nové pripojenia.
DisabledVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože správca prepol aplikáciu do režimu offline.
EntityTooLargeEntita prekročila maximálnu povolenú veľkosť.
FieldLengthBol prekročený limit dĺžky poľa.
ForbiddenPri analýze sa zistil zakázaný prvok alebo sekvencia.
HeaderV hlavičke sa vyskytla chyba analýzy.
HostnamePri spracovaní názvu hostiteľa sa vyskytla chyba analýzy.
InternalVyskytla sa vnútorná chyba servera (chyba 500 protokolu HTTP).
Invalid_CR/LFZistil sa neplatný koniec alebo posun riadka.
LengthRequiredChýbala požadovaná hodnota dĺžky.
N/AVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože sa vyskytla vnútorná chyba (napríklad zlyhanie vyhradenia pamäte).
N/IVyskytla sa neimplementovaná chyba (chyba 501 protokolu HTTP) alebo chyba nedostupnosti služby (chyba 503 protokolu HTTP) v dôsledku neznámeho kódovania prenosu.
NumberPri spracovaní čísla sa vyskytla chyba analýzy.
PreconditionChýbala požadovaná podmienka.
QueueFullVyskytla sa chyba nedostupnosti služby (chyba 503 protokolu HTTP). Služba nie je dostupná, pretože front požiadaviek aplikácie je plný.
RequestLengthBol prekročený limit dĺžky požiadavky.
Timer_AppPoolPlatnosť pripojenia uplynula, pretože požiadavka čakala príliš dlho vo fronte fondu aplikácií, kým ju serverová aplikácia vyradí z frontu a spracuje. Trvanie tohto časového limitu určuje hodnota ConnectionTimeout. V predvolenom nastavení je táto hodnota nastavená na 2 minúty.
Timer_ConnectionIdlePlatnosť pripojenia uplynula a pripojenie zostáva nečinné. Predvolené trvanie je prostredníctvom hodnoty ConnectionTimeout nastavené na 2 minúty.
Timer_EntityBodyPlatnosť pripojenia uplynula pred prijatím tela entity požiadavky. Keď je jasné, že požiadavka obsahuje telo entity, rozhranie API protokolu HTTP zapne časovač Timer_EntityBody. Limit tohto časovača je počiatočne nastavený na hodnotu ConnectionTimeout (zvyčajne 2 minúty). Pri každom prijatí indikácie ďalších údajov pre túto požiadavku rozhranie API protokolu HTTP vynuluje časovač tak, aby pripojenie získalo ďalšie dve minúty (alebo iné trvanie nastavené pomocou hodnoty ConnectionTimeout).
Timer_HeaderWaitPlatnosť pripojenia uplynula, pretože analýza hlavičky požiadavky trvala dlhšie, než je predvolený limit 2 minúty.
Timer_MinBytesPerSecondPlatnosť pripojenia uplynula, pretože klient neprijímal odpoveď dostatočnou rýchlosťou. Rýchlosť odosielania odpovede bola nižšia než predvolená rýchlosť 240 bajtov za sekundu. Túto hodnotu možno ovládať pomocou vlastnosti MinFileBytesPerSec metabázy.
Timer_ReqQueuePlatnosť pripojenia uplynula, pretože požiadavka čakala príliš dlho vo fronte fondu aplikácií, kým ju serverová aplikácia vyradí z frontu. Trvanie tohto časového limitu určuje hodnota ConnectionTimeout. V predvolenom nastavení je táto hodnota nastavená na 2 minúty. Táto chyba sa týka systémov Windows Vista a Windows Server 2008.
Timer_ResponseVyhradené. V súčasnosti sa nepoužíva.
Timer_SslRenegotiation Platnosť pripojenia uplynula, pretože opätovné vyjednávanie SSL medzi klientom a serverom trvalo dlhšie, než je predvolený časový limit 2 minúty.
URLPri spracovaní adresy URL sa vyskytla chyba analýzy.
URL_LengthAdresa URL prekročila maximálnu povolenú veľkosť.
VerbPri spracovaní príkazu sa vyskytla chyba analýzy.
Version_N/SVyskytla sa chyba v dôsledku nepodporovanej verzie (chyba 505 protokolu HTTP).

Odkazy

Ďalšie informácie o pridaní ďalších polí pre zapisovanie chýb do denníkov protokolu HTTP v rámci služby IIS získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:
832975 V súbore Httperr#.log v službách IIS 6.0 a IIS 7.0 sú teraz k dispozícii ďalšie vlastnosti pre zapisovania do denníkov (Tento obsah môže byť v angličtine)

Vlastnosti

ID článku: 820729 - Posledná kontrola: 30. novembra 2012 - Revízia: 3.0
Kľúčové slová: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Odošlite odozvu

 

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