ID članka: 820729
Proširi sve | Sažmi sve

Na ovoj stranici

Sažetak

U članku se opisuju mogućnosti zapisivanja pogrešaka za Hypertext Transfer Protocol (HTTP) API-je.

Neke pogreške do kojih može doći u aplikaciji koja se temelji na protokolu HTTP automatski otklanja HTTP API umjesto da se vraćaju u aplikaciju. Do toga dolazi zato što bi učestalost takvih pogrešaka inače preopteretila zapisnik događaja ili rukovatelja aplikacijom.

Sljedeće teme opisuju različite aspekte zapisivanja pogreške u HTTP API-ju:
  • Konfiguracija zapisivanja pogreške u HTTP API-ju
    Postavke registra upravljaju zapisivanjem pogrešaka u HTTP API-ju, maksimalnom dozvoljenom veličinom zapisničkih datoteka i lokacijom zapisničkih datoteka.
  • Format zapisničkih datoteka u HTTP API-ju
    HTTP API stvara zapisničke datoteke koje su sukladne konvencijama za zapisničke datoteke konzorcija World Wide Web Consortium (W3C). Možete koristiti standardne alate za raščlanjivanje tih zapisničkih datoteka. No za razliku od W3C zapisničkih datoteka, HTTP API zapisničke datoteke ne sadrže nazive stupaca.
  • Vrste pogrešaka koje HTTP API zapisuje
    HTTP API zapisuje velik broj uobičajenih pogrešaka.

Dodatne informacije

Konfiguracija zapisivanja pogreške u HTTP API-ju

Da bismo za vas konfigurirali zapisivanje pogreške u HTTP API-ju, idite na odjeljak "Popravite mi to". Ako biste radije sami konfigurirali zapisivanje pogreške u HTTP API-ju, prijeđite na odjeljak "Popravit ću to sam".

Popravite mi to



Da biste automatski riješili problem, kliknite vezu ili gumb Popravi taj problem. U dijaloškom okviru Preuzimanje datoteke kliknite Pokreni, a zatim slijedite korake navedene u čarobnjaku za popravak.

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


Napomene
  • Ovaj čarobnjak može biti dostupan samo na engleskom jeziku. No automatski popravak funkcionira i u verzijama sustava Windows na drugim jezicima.
  • Ako trenutno ne radite na računalu na kojem se pojavljuje problem, rješenje za popravak možete spremiti na izbrisivi memorijski pogon ili na CD, a zatim ga pokrenuti na računalu na kojem se problem pojavljuje.



Popravit ću to sam

Tri registarske vrijednosti u ključu HTTP \Parameters upravljaju zapisivanjem pogrešaka u HTTP API-ju. Ti ključevi nalaze se u sljedećem registarskom ključu:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Napomena Lokacija i oblik konfiguracijskih vrijednosti mogu se promijeniti u kasnijim verzijama operacijskog sustava Microsoft Windows.

Morate imati administratorske vjerodajnice ili vjerodajnice lokalnog sustava da biste promijenili vrijednosti registra, pregledali ili izmijenili zapisničke datoteke i mapu koja ih sadrži.

Informacije o konfiguraciji vrijednosti registra čitaju se pri pokretanju upravljačkog programa za HTTP API. Stoga ako promijenite postavke, morate prestati s radom i ponovno pokrenuti računalo kako biste očitali nove vrijednosti. Da biste to učinili unesite sljedeće naredbe u konzolu:
net stop http
net start http
Sljedeća konvencija za imenovanje datoteka koristi se za dodjelu imena zapisničkim datotekama:
httperr + broj slijeda + .log
Primjer: httperr4.log
Zapisničke datoteke izmjenjuju se kada dostignu maksimalnu veličinu navedenu u vrijednosti registra ErrorLogFileTruncateSize. Ta vrijednost ne može biti veća od jednog megabajta (MB).

Ako konfiguracija zapisivanja pogrešaka nije ispravna ili ako dođe do bilo kakve vrste pogreške dok HTTP API zapisuje u zapisničke datoteke, HTTP API koristi zapisivanje događaja da obavijesti administratore kako nije došlo do zapisivanja pogrešaka.

Konfiguracija vrijednosti registra opisana je sljedećoj tablici.
Sažmi ovu tablicuProširi ovu tablicu
Vrijednost registraOpis
EnableErrorLoggingDWORD možete postaviti na TRUE za omogućivanje zapisivanja pogrešaka ili FALSE za onemogućivanje. Zadana vrijednost je TRUE.
ErrorLogFileTruncateSizeDWORD određuje maksimalnu veličinu zapisničke datoteke s pogreškama u bajtima. Zadana vrijednost je jedan MB (0x100000).

Napomena Postavljena vrijednost ne može biti manja od zadane vrijednosti.
ErrorLoggingDirNiz određuje mapu u koju HTTP API sprema zapisničke datoteke.

HTTP API stvara podmapu HTTPERR u navedenoj mapi i pohranjuje zapisničke datoteke u podmapu. Ta podmapa i zapisničke datoteke imaju jednake postavke dozvola. Administratorski i račun lokalnog sustava imaju potpun pristup. Drugi korisnici nemaju pogodnosti pristupa.

U nastavku je zadana mapa u slučaju kada mapa nije navedena u registru:
%SystemRoot%\System32\LogFiles

Napomena Vrijednost niza ErrorLoggingDir mora biti valjani lokalni put. No može sadržavati %SystemRoot%. Ne može se koristiti mrežni pogon ili resurs.

Format HTTP API zapisničkih datoteka

HTTP API zapisničke datoteke s pogreškama najčešće su istog formata kao i W3C zapisnici s pogreškama, osim što HTTP API zapisničke datoteke s pogreškama ne sadrže naslove stupaca. Svaki redak HTTP API zapisnika s pogreškama sadrži jednu pogrešku. Polja su prikazana određenim redoslijedom. Jedan razmak (0x0020) odvaja svako polje od prethodnog. U svakom polju znakovi za razmak, uvlaku i kontrolni znakovi koje nije moguće ispisati zamijenjeni su znakom plus (0x002B).

Sljedeća tablica sadrži polja i redoslijed polja u zapisniku s pogreškama.
Sažmi ovu tablicuProširi ovu tablicu
PoljeOpis
DatumPolje Datum je u W3C formatu. Vrijednost polja zasniva se na koordiniranom univerzalnom vremenu (UTC). Polje datum uvijek sadrži deset znakova u obliku YYYY-MM-DD. Na primjer, 1. svibnja 2003. prikazuje se kao 2003-05-01.
VrijemePolje Vrijeme je u W3C formatu. Vrijednost polja zasniva se na koordiniranom univerzalnom vremenu (UTC). Polje vrijeme uvijek sadrži osam znakova u obliku MM:HH:SS. Na primjer, 5:30 poslijepodne (UTC) prikazuje se kao 17:30:00.
IP adresa klijentaIP adresa klijenta koji ima poteškoće. Vrijednost u polju može biti IPv4 adresa ili IPv6 adresa. Ako je IP adresa klijenta IPv6, polje sadrži i ScopeId polje.
Klijentski priključakBroj porta klijenta koji ima poteškoće.
IP adresa poslužiteljaIP adresa poslužitelja koji ima poteškoće. Vrijednost u polju može biti IPv4 adresa ili IPv6 adresa. Ako je IP adresa poslužitelja IPv6, adresa sadrži i ScopeId polje.
Poslužiteljski priključakPoslužiteljski priključak poslužitelja koji ima poteškoće.
Verzija protokola:Korištena verzija protokola.

Ako veza nije raščlanjena dovoljno da se odredi verzija protokola, koristi se crtica (0x002D) kao rezervirano mjesto za prazno polje.

Ako je raščlanjeni glavni ili radni broj verzije veći ili jednak 10, verzija se zapisuje kao HTTP/?.?.
GlagolGlagol označava posljednji izvršeni raščlanjeni zahtjev. Mogući su i nepoznati glagoli, ali svaki glagol dulji od 255 bajta skraćuje se na tu duljinu. Ako nije dostupan glagol, koristi se crtica (0x002D) kao rezervirano mjesto za prazno polje.
CookedURL + UpitURL i povezani upiti zapisuju se kao jedno polje i razdvojeni su upitnikom (0x3F). Ovo polje ograničeno je duljinom od 4096 bajta.

Ako je ovaj URL raščlanjen ("skuhan", engl."cooked"), zapisuje se s konverzijom lokalne kodne stranice i smatra se Unicode poljem.

Ako ovaj URL nije raščlanjen ("skuhan") u trenutku zapisivanja, kopira se bez Unicode konverzije.

Ako HTTP API ne može raščlaniti URL, koristi se crtica (0x002D) kao rezervirano mjesto za prazno polje.
Status protokolaStatus protokola ne može biti veći od 999.

Ako je dostupan status protokola odgovora na zahtjev, zapisuje se u ovo polje.

Ako nije dostupan status protokola, koristi se crtica (0x002D) kao rezervirano mjesto za prazno polje.
SiteIdNe koristi se u ovoj verziji HTTP API-ja. U ovom se polju uvijek koristi crtica (0x002D) kao rezervirano mjesto.
Fraza razlogaOvo polje sadrži niz koji identificira vrstu pogreške koja se zapisuje. Ovo polje nikad se ne ostavlja praznim.
Naziv reda čekanjaOvo je naziv reda čekanja za zahtjeve.
Slijedi primjer redaka iz HTTP API zapisnika s pogreškama:
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

Vrste pogrešaka koje zapisuje HTTP API

HTTP API zapisuje odgovore korisnicima vezane uz pogreške, istekla vremenska ograničenja za povezivanje, napuštene zahtjeve i prekinute veze kojima se nije pravilno rukovalo.

Sljedeći popis sadrži vrste pogrešaka koje HTTP API zapisuje:
  • Odgovore korisnicima HTTP API šalje odgovor o pogrešci korisniku. Na primjer, pogreška 400 koja je izazvana pogreškom prilikom raščlanjivanja u zadnjem zaprimljenom zahtjevu. Nakon što HTTP API pošalje odgovor o pogrešci, prekida se veza.
  • Istekla vremenska ograničenja za povezivanje HTTP API čeka dok ne istekne vremensko ograničenje za povezivanje. Ako je u trenutku isteka vremenskog ograničenja za povezivanje zahtjev na čekanju, zahtjev se koristi kako bi pružio više informacija o vezi u zapisniku s pogreškama.
  • Napušteni zahtjevi Postupak u korisničkom načinu rada neočekivano se zatvara dok još postoje zahtjevi na čekanju koji su preusmjereni na taj postupak. HTTP API zapisuje napuštene zahtjeve u zapisnik s pogreškama.
Određene vrste pogrešaka označene su nizom Fraza razloga koji se uvijek nalazi na zadnjem polju svakog retka s pogreškama. Sljedeća tablica sadrži HTTP API Fraze razloga.
Sažmi ovu tablicuProširi ovu tablicu
Fraza razlogaOpis

AppOfflineDošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zato što je pogreška aplikacije prekinula vezu aplikacije s mrežom.
AppPoolTimerDošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zato što je proces grupe aplikacija prezauzet da bi upravljao zahtjevom.
AppShutdownDošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zato što se aplikacija automatski isključila kao odgovor na administratorska pravila.
BadRequestPrilikom obrade procesa došlo je pogreške s raščlanjivanjem.
Client_ResetVeza između klijenta i poslužitelja zatvorena je prije nego je zahtjev dodijeljen radnom procesu. Najčešći uzrok ovog ponašanja jest da je korisnik prerano zatvorio vezu do poslužitelja.
Connection_Abandoned_By_AppPoolRadni proces iz grupe aplikacija neočekivano je prekinuo s radom ili je napustio zahtjev na čekanju zatvaranjem oznake.
Connection_Abandoned_By_ReqQueueRadni proces iz grupe aplikacija neočekivano je prekinuo s radom ili je napustio zahtjev na čekanju zatvaranjem oznake. Pogreška je specifična za sustav Windows Vista i Windows Server 2008.
Connection_DroppedVeza između klijenta i poslužitelja zatvorena je prije nego je poslužitelj poslao posljednji paket odgovora. Najčešći uzrok ovog ponašanja jest da je korisnik prerano zatvorio vezu do poslužitelja.
Connection_Dropped_List_FullPopis prekinutih veza između korisnika i poslužitelja je pun. Pogreška je specifična za sustav Windows Vista i Windows Server 2008.
ConnLimitDošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zato što je ograničenje veze na razini web-mjesta dostignuto ili prijeđeno.
Connections_RefusedMemorija jezgre sustava NonPagedPool pala je ispod 20 MB i http.sys prestao je primati nove veze
OnemogućenoDošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zato što je administrator prekinuo vezu aplikacije s mrežom.
EntityTooLargeEntitet je premašio maksimalnu dozvoljenu veličinu.
FieldLengthPremašeno je ograničenje duljine polja.
ForbiddenPrilikom raščlanjivanja pronađen je zabranjeni element ili slijed.
HeaderPogreška s raščlanjivanjem pronađena je u zaglavlju (engl. header).
HostnamePrilikom obrade naziva glavnog računala (engl. Hostname) došlo je pogreške s raščlanjivanjem.
InternalDošlo je do interne pogreške poslužitelja (HTTP pogreška broj 500).
Invalid_CR/LFDošlo je do nedopuštenog znaka za prijelaz u novi red ili znaka polja redaka.
LengthRequiredNedostaje vrijednost duljine.
N/ADošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zbog interne pogreške (kao što je pogreška pri dodjeli memorije).
N/IDošlo je do pogreške jer naredba nije implementirana (HTTP pogreška broj 501) ili pogreške jer servis nije dostupan (HTTP pogreška broj 503) zbog nepoznatog kodiranja prijenosa.
NumberPrilikom obrade broja došlo je pogreške s raščlanjivanjem.
PreconditionNedostaje potreban preduvjet.
QueueFullDošlo je do pogreške jer servis nije dostupan (HTTP pogreška broj 503). Servis nije dostupan zato što je red čekanja aplikacije ispunjen.
RequestLengthPremašeno je ograničenje duljine zahtjeva.
Timer_AppPoolVeza je istekla zato što je zahtjev čekao predugo u redu čekanja grupe aplikacija da ga aplikacija poslužitelja preuzme i obradi. Ovo vremensko ograničenje je ConnectionTimeout. Po zadanim postavkama ova vrijednost postavljena je na dvije minute.
Timer_ConnectionIdleVeza je istekla i u stanju mirovanja je. Zadano trajanje postavke ConnectionTimeout je dvije minute.
Timer_EntityBodyVeza je istekla prije nego je stiglo tijelo entiteta zahtjeva. Kada postane jasno da zahtjev ima tijelo entiteta, HTTP API uključuje mjerač vremena Timer_EntityBody. Početno je ograničenje mjerača vremena postavljeno na vrijednost postavke ConnectionTimeout (uobičajeno dvije minute). Svaki puta kada je na ovom zahtjevu primljena druga naznaka o podacima, HTTP API vraća mjerač vremena na nulu kako bi veza imala još dvije minute (ili vrijednost navedenu u postavci ConnectionTimeout).
Timer_HeaderWaitVeza je istekla zato što je raščlanjivanje zaglavlja trajalo dulje od zadanog ograničenja od dvije minute.
Timer_MinBytesPerSecondVeza je istekla zato što korisnik nije primio odgovor određenom brzinom. Brzina slanja odgovora sporija je od zadanih 240 bajta/s. Brzinom možete upravljati pomoću svojstva metabaze MinFileBytesPerSec.
Timer_ReqQueueVeza je istekla zato što je zahtjev čekao predugo u redu čekanja grupe aplikacija da ga aplikacija poslužitelja preuzme. Ovo vremensko ograničenje je ConnectionTimeout. Po zadanim postavkama ova vrijednost postavljena je na dvije minute. Pogreška je specifična za sustav Windows Vista i Windows Server 2008.
Timer_ResponseRezervirano. Trenutačno se ne koristi.
Timer_SslRenegotiation Veza je istekla zato što je SSL pregovor između korisnika i poslužitelja trajao dulje od zadanog ograničenja od dvije minute.
URLPrilikom obrade URL-a došlo je pogreške s raščlanjivanjem.
URL_LengthURL je dulji od maksimalne dozvoljene duljine.
VerbPrilikom obrade glagola (engl. verb) došlo je pogreške s raščlanjivanjem.
Version_N/SDošlo je do pogreške jer verzija nije podržana (HTTP pogreška broj 505).

Reference

Za dodatne informacije o dodavanju dodatnih polja za zapisivanje za IIS HTTP zapisivanje pogrešaka, kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
832975 Za zapisivanje u datoteci Httperr#.log u aplikacijama IIS 6.0 i IIS 7.0 dostupna su dodatna svojstva (Tekst je možda na engleskom)
Napomena Ovo je članak za brzo objavljivanje stvoren izravno iz Microsoftove službe podrške. Informacije u ovom članku navode se kakve jesu kao odgovor na nova pitanja. Materijali zbog brzine objavljivanja mogu sadržavati tipografske pogreške te mogu biti revidirani u bilo kojem trenutku bez obavijesti. Pogledajte Uvjete korištenja za dodatne informacije.

Svojstva

ID članka: 820729 - Posljednja izmjena: 30. studenog 2012. - Revizija: 2.0
Ključne riječi: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Pošaljite povratne informacije

 

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