Logføring af fejl i HTTP APIs

VIGTIGT: Denne artikel er blevet oversat af Microsofts oversættelses program og er dermed ikke oversat af et menneske. Microsoft udbyder både artikler oversat af maskiner såvel som af mennesker så du vil have adgang til alle artikler in vores videns database på dit eget sprog. Alligevel, vil en maskine-oversat artikel ikke altid være perfekt. Der kan forekomme alfabetiske, grammatiske samt strukturelle fejl, ligesom når en udlændinge måtte lave fejl når han taler vores sprog. Microsoft står ikke til ansvar for ukorrektheder, fejl eller skade som måtte forårsages af forkerte oversættelser af indholdet eller kunders brug af samme. Microsoft opdaterer hyppigt maskine-oversættelses programmet.

Dette er den engelske version af artiklen: 820729
Sammenfatning
I denne artikel beskrives funktionerne til logføring af fejl i HTTP APIs.

Nogle fejl, der opstår i en HTTP-baseret program, håndteres automatisk af HTTP-API'EN i stedet for sendes tilbage til et program til håndtering. Dette problem opstår, fordi hyppigheden af sådanne fejl kan ellers mod oversvømmelse en hændelseslog eller en programhåndteringsfunktionen.

I følgende emner beskrives de forskellige aspekter af logføring af fejl i HTTP-API.
  • Konfigurere HTTP-API-errorlogging
    Registreringsdatabasen styrer HTTP-API'EN logger fejl, themaximum tilladte størrelse på logfiler samt placeringen af logfilerne.
  • Formatet på HTTP-APIerror logger
    HTTP-API'EN opretter logfiler, der er i overensstemmelse med theWorld Wide Web Consortium (W3C) log fil konventioner. Du kan bruge standardværktøjer til at analysere disse logfiler. I modsætning til W3C-logfiler kræver logfiler i HTTP-API dog notcontain kolonner-navne.
  • Typer af fejl, som logfører HTTP-API
    HTTP-API'EN registrerer mange almindelige fejl.
Yderligere Information

Konfigurere logføring af fejl i HTTP-API

Hvis vi skal konfigurere fejllogføring i HTTP-API for dig, gå til den "Her er en nem løsning"afsnit. Hvis du foretrækker at konfigurere HTTP-API-fejl, logføring af dig selv, gå til den "Lad mig selv løse det."afsnit.

Her er en nem løsning

Du kan løse problemet automatisk, skal du klikke på knappen Hent . Klik på Kør eller åbeni dialogboksen Filoverførsel , og følg derefter vejledningen i guiden nemt fix.
  • Denne guide er muligvis kun på engelsk. Den automatiske rettelse fungerer dog også for andre sprogversioner af Windows.
  • Hvis du ikke er på den computer, der har problemet, gemme let fix løsningen på et flashdrev eller en CD og derefter køre den på den computer, der har problemet.
Deaktiver logføring af fejl i HTTP-API
Aktivere logføring af fejl i HTTP-API

Lad mig selv løse det.

Tre værdier i registreringsdatabasen under nøglen en http-\Parameters styre logføring af fejl i HTTP-API. Tasterne er placeret i følgende registreringsdatabasenøgle:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Bemærk Placering og form af hardwarekonfigurationens værdier kan ændres i senere versioner af Windows-operativsystemet.

Du skal have legitimationsoplysninger for Administrator, lokale System til at ændre værdierne i registreringsdatabasen og for at se eller ændre logfilerne, og den mappe, der indeholder dem.

Konfigurationsoplysningerne i værdierne i registreringsdatabasen læses, når HTTP-API-driveren starter. Derfor, hvis du ændrer indstillingerne, skal du stoppe og genstart derefter driver for at læse de nye værdier. For at gøre dette skal du skrive følgende kommandoer i konsollen:
net stop http
net start http
Følgende navngivningskonvention, der bruges til at navngive logfilerne:
httperr + løbenummer + .log
Eksempel: httperr4.log
Logfiler er cykluser, når de har nået den maksimale størrelse, der angiver værdien ErrorLogFileTruncateSize i registreringsdatabasen. Denne værdi må ikke være mindre end én megabyte (MB).

Hvis konfigurationen af fejllogføring ikke er gyldig, eller hvis alle slags fejl, der opstår, mens HTTP-API, der skriver til logfilerne, bruger HTTP-API'EN logføring af hændelser til at underrette administratorer, at logføring af fejl ikke opstår.

I følgende tabel beskrives konfiguration af registreringsdatabaseværdier.
Værdien i registreringsdatabasenBeskrivelse
EnableErrorLoggingEt DWORD , kan du angive til Sand for at aktivere logføring af fejl eller FALSK at deaktivere den. Standardværdien er TRUE.
ErrorLogFileTruncateSizeEt DWORD , som angiver den maksimale størrelse på en fejl i logfilen i byte. Standardværdien er 1 MB (0x100000).

Bemærk Den angivne værdi må ikke være mindre end standardværdien.
ErrorLoggingDirEn streng , der angiver den mappe, hvor HTTP-API sætter filerne logføring.

HTTP-API'EN opretter en undermappe, HTTPERR i den angivne mappe, og derefter gemmes logfilerne i undermappen. Denne undermappe og logfilerne til at modtage de samme tilladelsesindstillinger. Administrator- og systemkonti lokale har fuld adgang. Andre brugere har ikke adgang.

Følgende er standardmappen, når mappen ikke er angivet i registreringsdatabasen:
%SystemRoot%\System32\LogFiles

Bemærk Strengværdien ErrorLoggingDir skal være en fuldt kvalificeret sti til lokal. Den kan dog indeholde % SystemRoot %. Kan ikke bruges som et netværksdrev eller et netværksshare.

tilbage til toppen

Formatet af fejllogfiler HTTP-API

HTTP-API-fejl logfiler har samme format som W3C fejllogfiler, bortset fra at API HTTP-fejl-logfilerne ikke indeholder kolonneoverskrifter. Hver linje i en HTTP-API fejllog registrerer en fejl. Felterne vises i en bestemt rækkefølge. Et enkelt mellemrum (0x0020) adskiller hvert felt fra det forrige felt. I hvert felt skal erstatte plustegn (+) (0x002B) mellemrumstegn, faner og kontroltegn, der ikke kan udskrives.

I følgende tabel beskrives felterne og rækkefølgen af felterne i en logpost for fejl.
FeltBeskrivelse
DatoFeltet dato følger W3C-format. Dette felt er baseret på Coordinated Universal Time (UTC). Feltet dato er altid ti tegn i form af åååå-MM-DD. 1. maj 2003 er eksempelvis udtrykt i 2003-05-01.
TidFeltet følger W3C-format. Dette felt er baseret på UTC. Feltet er altid otte tegn i form af MM:HH:SS. For eksempel er 5:30 PM (UTC) udtrykt som 17:30:00.
Klients IP-adresseIP-adressen på den pågældende klient. Værdien i dette felt kan være enten en IPv4-adresse eller en IPv6-adresse. Hvis klients IP-adresse er en IPv6-adresse, findes også feltet område-id i feltet adresse.
Klient-PortPortnummeret for den pågældende klient.
Serverens IP-adresseIP-adressen på den pågældende server. Værdien i dette felt kan være enten en IPv4-adresse eller en IPv6-adresse. Hvis serverens IP-adresse er en IPv6-adresse, findes også feltet område-id i feltet adresse.
Server PortPortnummeret på den pågældende server.
ProtokolversionVersionen af protokollen, der bruges.

Hvis forbindelsen ikke er parset tilstrækkelig todetermine protokolversion, en bindestreg (0x002D) bruges som en placeholderfor det tomme felt.

Hvis enten det overordnede versionsnummer eller det underordnede versionsnummer, der er analyseret isgreater end eller lig med 10, registreres versionen som HTTP /?.?.
VerbumTilstanden verbum, som sidst anmodning, der er fortolket gennemløb. Ukendt verber er inkluderet, men et verbum, der er mere end 255 byte er afkortet til denne længde. Hvis et verbum ikke er tilgængelig, bruges en bindestreg (0x002D) som pladsholder for det tomme felt.
CookedURL + forespørgselURL-adressen og alle forespørgsler, der er tilknyttet det registreres som et enkelt felt, der er adskilt af et spørgsmålstegn (0x3F). Dette felt afkortes ved grænsen for længden af 4.096 byte.

Hvis denne URL-adresse blev fortolket ("kogt"), logføres med lokale tegntabeller, og det behandles som et Unicode-felt.

Hvis denne URL-adresse ikke er parset ("kogt") på thetime for logføring, bliver det kopieret nøjagtigt, uden en Unicode-konvertering.

Hvis HTTP-API ikke kan fortolke denne URL-adresse, bruges en hyphen(0x002D) som en pladsholder for det tomme felt.
Protokollen StatusProtokolstatus må ikke være større end 999.

Hvis protokollen status for svar på en requestis, der er tilgængelige, der registreres i dette felt.

Hvis protokollen status ikke er tilgængelig, bruges et hyphen(0x002D) som pladsholder for det tomme felt.
Sted-idBruges ikke i denne version af HTTP-API'EN. En pladsholder bindestreg (0x002D) vises altid i dette felt.
Årsagen til udtrykDette felt indeholder en streng, der identificerer typen fejl, der logføres. Dette felt stå aldrig tomt.
Navn på anmodningskøDenne anmodning kønavnet.
Følgende eksempel linjer er en HTTP-API-fejl-log:
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 – værtsnavn 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
tilbage til toppen

Typer fejl, som logfører HTTP-API

HTTP-API'EN logger fejlsvar på klienter, timeout for forbindelsen, tabte anmodninger og mistede forbindelser, der håndteres korrekt.

Følgende liste identificerer type fejl, som logfører HTTP-API:
  • Svar til klienter HTTP-API'EN sender et svar til en klient, for eksempel en 400 fejl, der skyldes en parsefejl i sidste modtaget anmodning en fejl. Når HTTP-API'EN sender svaret for fejl, lukker det forbindelsen.
  • Timeout for forbindelse HTTP-API'EN udløber en forbindelse. Hvis en anmodning afventer deltagelse, når forbindelsen får timeout, anmodningen bruges til at give yderligere oplysninger om theconnection i fejlloggen.
  • Orphaned anmodninger En brugerproces stopper uventet, mens der stadig køstillede anmodninger, der sendes til denne proces. HTTP-API'EN registrerer de tabte anmodninger i fejlloggen.
Specifikke fejltyper er udpeget af Årsag sætning strenge, der altid vises som det sidste felt i hver linje af fejl. I følgende tabel beskrives de HTTP-API grund-sætninger.
Årsagen til udtrykBeskrivelse

AppOfflineService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, fordi programmet fejl forårsaget programmet til at være offline.
AppPoolTimerService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, fordi processen application pool er for optaget til at håndtere anmodningen.
AppShutdownService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, fordi programmet lukker automatisk svar på administratorpolitik.
BadRequestDer opstod en parsefejl under behandlingen af anmodningen.
Client_ResetForbindelsen mellem klienten og serveren blev lukket, før anmodningen kunne tildeles en arbejdsproces. Den mest almindelige årsag til dette problem er, at klienten lukker forbindelsen til serveren for tidligt.
Connection_Abandoned_By_AppPoolEn arbejdsproces fra programgruppen har uventet eller tabt en ventende anmodning ved at lukke sin handle.
Connection_Abandoned_By_ReqQueueEn arbejdsproces fra programgruppen har uventet eller tabt en ventende anmodning ved at lukke sin handle. Særlige Windows Vista og nyere versioner og Windows Server 2008 og nyere versioner.
Connection_DroppedForbindelsen mellem klienten og serveren blev lukket, før serveren kan sende Svarpakkerne endelige. Den mest almindelige årsag til dette problem er, at klienten lukker forbindelsen til serveren for tidligt.
Connection_Dropped_List_FullListen over udeladte forbindelser mellem klienter og serveren er fuld. Særlige Windows Vista og nyere versioner og Windows Server 2008 og nyere versioner.
ConnLimitService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, fordi webstedet niveau forbindelsesgrænsen har nået eller overskredet.
Connections_RefusedKernen NonPagedPool hukommelse er tabt under 20MB og http.sys er holdt op med at modtage nye forbindelser
DeaktiveretService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da en administrator har taget programmet offline.
EntityTooLargeEt objekt har overskredet den maksimale størrelse, der er tilladt.
FieldLengthEt felt længdebegrænsning blev overskredet.
ForbudtForbudte element eller en sekvens opstod under parsing.
HovedDer opstod en parsefejl i et sidehoved.
VærtsnavnDer opstod en parsefejl under behandlingen af et værtsnavn.
InterneDer opstod en intern serverfejl (en HTTP-fejl 500).
Invalid_CR/LFDer opstod en ugyldig vognretur eller linjeskift.
LengthRequiredDer manglede en værdi for påkrævede længde.
I/TService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, fordi der opstod en intern fejl (f.eks. en fejl under allokering af hukommelse eller en URL-Reservation liste konflikt).
N / JEGIkke-implementeret opstod en (en HTTP-fejl 501) eller en service ikke tilgængelig opstod (en HTTP-fejl 503) på grund af en ukendt overførselskodning.
TalDer opstod en parsefejl under behandlingen af et tal.
ForudsætningDer manglede en nødvendig forudsætning.
QueueFullService opstod ikke tilgængelig en (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, fordi programmet anmodningskøen er fuld.
RequestLengthEn anmodning om længdebegrænsning blev overskredet.
Timer_AppPoolForbindelsen udløbet, fordi en anmodning ventet længe i en application pool kø til et serverprogram til at deaktivere køen og behandle den. Denne timeout-varighed er ConnectionTimeout. Denne værdi er som standard angivet til to minutter.
Timer_ConnectionIdleForbindelsen er udløbet, og den forbliver inaktiv. ConnectionTimeout standardvarigheden er to minutter.
Timer_EntityBodyForbindelsen udløb, før objektet anmodningsteksten ankommet. Når en anmodning er klart en enhed-organ, aktiveres HTTP-API'EN Timer_EntityBody timeren. I første omgang, er grænsen for timeren indstillet til ConnectionTimeout værdi (typisk to minutter). Hver gang, at en anden angivelse af data, der modtages på denne anmodning, HTTP-API, nulstilles timeren for at give forbindelsen to minutter (eller hvad der er angivet i ConnectionTimeout).
Timer_HeaderWaitForbindelsen udløbet, fordi hovedet for en anmodning om fortolkning tog længere tid end standardgrænse på to minutter.
Timer_MinBytesPerSecondForbindelsen udløbet, fordi klienten ikke modtog et svar med en rimelig hastighed. Send svarprocenten var langsommere end standard på 240 byte/sek. Kan styres med MinFileBytesPerSec -metabaseegenskab.
Timer_ReqQueueForbindelsen udløbet, fordi en anmodning ventet længe i en application pool kø til et serverprogram til at deaktivere kø. Denne timeout-varighed er ConnectionTimeout. Denne værdi er som standard angivet til to minutter. Særlige Windows Vista og nyere versioner og Windows Server 2008 og nyere versioner.
Timer_ResponseReserveret. I øjeblikket bruges ikke.
Timer_SslRenegotiationForbindelsen udløbet, fordi SSL-genforhandling mellem klienten og serveren tog længere end standardværdien for timeout på to minutter.
URL-ADRESSEDer opstod en parsefejl under behandlingen af en URL-adresse.
URL_LengthEn URL-adresse har overskredet den maksimalt tilladte størrelse.
VerbumDer opstod en parsefejl under behandlingen af et verbum.
Version_N/SVersion ikke understøttes opstod en (en HTTP-fejl 505).

tilbage til toppen
Referencer
Yderligere oplysninger om at tilføje yderligere logføring for IIS HTTP-logføring af fejl ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
832975 Yderligere egenskaber er nu tilgængelig til at logge på Httperr # .log-filen i IIS 6.0 og IIS 7.0
fixme løse det fixit

Advarsel! Denne artikel er oversat automatisk

Egenskaber

Artikel-id: 820729 – Seneste udgave 03/08/2016 04:27:00 – Udgave 3.0

Windows Server 2008 R2 Standard, Windows Server 2008 R2 Enterprise, Windows Server 2008 Enterprise, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 for Embedded Systems, Windows Server 2012 R2 Foundation, Windows Server 2012 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows 10, Windows 10 Enterprise, released in July 2015, Windows 10 Pro, released in July 2015, Windows 10 Version 1511, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8, Windows 8 Pro, Windows 8 Enterprise, Windows 7 Professional, Windows 7 Enterprise

  • kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme kbmt KB820729 KbMtda
Feedback