Artikel-id: 820729
Udvid alle | Skjul alle

På denne side

Sammenfatning

I denne artikel beskrives funktionerne til logføring af fejl i API'er til HTTP (Hypertext Transfer Protocol).

Nogle fejl, som opstår i et HTTP-baseret program, håndteres automatisk af HTTP-API'en frem for at blive sendt tilbage til et program, hvor de så håndteres. Denne funktionsmåde forekommer, fordi hyppigheden af sådanne fejl i modsat fald ville overfylde en hændelseslog eller en programhandler.

Følgende emner beskriver de forskellige aspekter ved logføring af fejl i HTTP-API'er:

Yderligere Information

Konfigurer logføring af fejl i HTTP-API'er

Hvis du vil have os til at konfigurere logføring af fejlene i HTTP API'en, skal du gå til afsnittet "Løs det for mig". Hvis du foretrækker selv at konfigurere logføring af fejlene i HTTP-API'en, skal du gå til afsnittet "Jeg vil selv løse problemet".

Løs problemet for mig



Du kan løse problemet automatisk ved at klikke på knappen eller linket Fix it. Klik på Kør i dialogboksen Filoverførsel, og følg derefter trinnene i guiden Fix it.

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


Bemærk!
  • Guiden findes muligvis kun på engelsk, men den automatiske programrettelse virker også på andre sprogversioner af Windows.
  • Hvis du ikke arbejder på den computer, hvor problemet forekommer, kan du gemme løsningen på et flashdrev eller på en cd og derefter køre det på den computer, der har problemet.



Jeg vil selv løse problemet

Der er tre registreringsdatabaseværdier under en HTTP\Parameters-nøgle, der styrer logføringen af fejl i HTTP-API'en. Nøglerne findes i følgende registreringsdatabasenøgle:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Bemærk! Placeringen og formen på konfigurationsværdier kan ændres i senere versioner af Microsoft Windows-operativsystemet.

Du skal have administratorrettigheder/lokale systemrettigheder for at foretage ændringer i registreringsdatabaseværdier samt til at få vise eller ændre logfilerne og de mapper, der indeholder dem.

Konfigurationsoplysningerne i registreringsdatabaseværdierne læses, når HTTP-API-driveren starter. Hvis du ændringer indstilingerne, skal du derfor stoppe og derefter genstarte driveren, så de nye værdier læses. Det kan du gøre ved at skrive følgende kommandoer ud for konsollens kommandoprompt:
net stop http
net start http
Der bruges følgende navnekonventioner til at navngive logfilerne:
httperr + sekvensnummer + .log
Eksempel: httperr4.log
Logfilerne genbruges, når de når den maksimale størrelse, som angivet i registreringdatabaseværdien ErrorLogFileTruncateSize. Denne værdi må ikke være mindre end én megabyte (MB).

Hvis konfigurationen af fejllogføringen er ugyldig, eller hvis der opstår fejl, mens HTTP-API'en skriver til logfilerne, bruger HTTP-API'en hændelseslogføring til at give administratorerne besked om, at der ikke er foretaget fejllogføring.

I følgende tabel beskrives værdierne for konfigurationen af registreringsdatabasen.
Skjul tabellenUdvid tabellen
Værdi i registreringsdatabasenBeskrivelse
EnableErrorLoggingEn DWORD-værdi, som du kan angive til SAND for at aktivere fejllogføring eller til FALSK for at deaktivere. Standardværdien er SAND.
ErrorLogFileTruncateSizeEn DWORD-værdi, der angiver den maksimale størrelse på en fejllogfil i byte. Standardværdien er én 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'en opbevarer sine logføringsfiler.

HTTP-API'en opretter undermappen HTTPERR i den angivne mappe og gemmer derefter logfilerne i undermappen. Undermappen og logfilerne har samme tilladelsesindstillinger. Administrator- og den lokale systemkonto har komplette adgangsrettigheder. 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 komplet lokal sti. Den kan dog indeholde %SystemRoot%. Der kan ikke bruges et netværksdrev eller netværksshare.

Formatet af HTTP-API-fejllogfiler

HTTP-API-fejllogfiler har normalt samme format som W3C-fejllogfiler med undtagelse af HTTP-API-fejllogfiler, som ikke indeholder kolonneoverskrifter. Hver linje i en HTTP-API-fejllog registrerer én fejl. Felterne vises i en bestemt rækkefølge. Et enkelt mellemrum (0x0020) adskiller hvert felt fra det forrige felt. I hvert felt erstatter plustegn (0x002B) mellemrum, tabulatorer og kontroltegn, der ikke kan udskrives.

I følgende tabel angives felterne og rækkefølgen af felterne i en post i fejlloggen.
Skjul tabellenUdvid tabellen
FeltBeskrivelse
DatoFeltet Dato følger W3C-formatet. Feltet er baseret på Coordinated Universal Time (UTC). Feltet Dato er altid på ti tegn og med formatet ÅÅÅÅ-MM-DD, f.eks. skrives 1. maj 2003 som 2003-05-01.
KlokkeslætFeltet Klokkeslæt følger W3C-formatet. Feltet er baseret på UTC. Feltet for klokkeslæt er altid på otte tegn og med formatet MM:TT:SS, f.eks. angives klokkeslættet kl. halv seks om eftermiddagen som 17:30:00.
Klientens IP-adresseIP-adressen på den pågældende klient. Værdien i feltet kan enten være en IPv4-adresse eller en IPv6-adresse. Hvis klientens IP-adresse er en IPv6-adresse, er feltet Scopeld også medtaget i adressen.
KlientportPortnummeret for den pågældende klient.
Serverens IP-adresseIP-adressen på den pågældende server. Værdien i feltet kan enten være en IPv4-adresse eller en IPv6-adresse. Hvis serverens IP-adresse er en IPv6-adresse, er feltet Scopeld også medtaget i adressen.
ServerportPortnummeret på den pågældende server.
ProtokolversionVersionen af den protokol, der bruges.

Hvis forbindelsen ikke blev parset nok til at fastlægge protokolversionen, bruges der en bindestreg (0x002D) som pladsholder for det tomme felt.

Hvis hverken det overordnede eller det underordnede versionsnummer, der blev parset, er større end eller lig med ti, logføres versionen som HTTP/?.?.
VerbumVerbumtilstanden, som den sidste anmodning der blev parset, gennemgår. Ukendte verber er medtaget, men alle verber over 255 bytes afkortes til denne længde. Hvis et verbum ikke er tilgængeligt, bruges der en bindestreg (0x002D) som pladsholder for det tomme felt.
CookedURL + forespørgselURL-adressen og alle tilknyttede forespørgsler logføres som ét felt, der adskilles med et spørgsmålstegn (0x3F). Feltet afkortes ved dets længdebegrænsning på 4.096 bytes.

Hvis URL-adressen blev parset ("cooked"), logføres den med den lokale kodesidekonvertering og behandles som et Unicode-felt.

Hvis URL-adressen ikke blev parset ("cooked") på logføringstidspunktet, tages der en nøjagtig kopi uden Unicode-konvertering.

Hvis HTTP-API'en ikke kan parse URL-adressen, bruges der en bindestreg (0x002D) som pladsholder for det tomme felt.
ProtokolstatusProtokolstatus må ikke være større end 999.

Hvis protokolstatus for svar på en anmodning er tilgængelig, logges den i dette felt.

Hvis protokolstatussen ikke er tilgængelig, bruges der en bindestreg (0x002D) som pladsholder for det tomme felt.
SiteIdBruges ikke i denne version af HTTP-API. Der vises altid en bindestreg som pladsholder (0x002D) i dette felt.
Udtryk for årsagDette felt indeholder en streng, der identificerer den fejltype, der logges. Dette felt er aldrig tomt.
KønavnDette er kønavnet for anmodningen.
Følgende eksempellinjer stammer fra en HTTP-API-fejllog:
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

Fejltyper, der logføres af HTTP-API

HTTP-API logfører fejlsvar til klienter, timeout for forbindelser, ignorerede anmodninger, og mistede forbindelser, der håndteres forkert.

På følgende liste identificeres de fejltyper, der logføres af HTTP-API:
  • Svar til klienter HTTP-API sender et fejlsvar til en klient, f.eks. en 400-fejl, der skyldes en parsefejl i den sidst modtagne anmodning. Når HTTP-API sender dette fejlsvar, afbryder den forbindelsen.
  • Timeout for forbindelse HTTP-API afbryder en forbindelse på grund af timeout. Hvis en anmodning afventer svar, når forbindelsen afbrydes på grund af timeout, bruges anmodningen til at få flere oplysninger om forbindelsen i fejlloggen.
  • Ignorerede anmodninger En brugertilstandsproces afsluttes uventet, mens der stadig dirigeres køanmodninger til den. HTTP-API logfører de ignorerede anmodninger i fejlloggen.
Specifikke fejltyper angives af Udtryk for årsag-strenge, der altid vises som sidste felt på hver fejllinje. I følgende tabel beskrives udtryk for årsager i HTTP-API.
Skjul tabellenUdvid tabellen
Udtryk for årsagBeskrivelse

AppOfflineDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da programfejlene skyldes, at programmet er offline.
AppPoolTimerDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da programgruppeprocessen er for optaget til at kunne håndtere anmodningen.
AppShutdownDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da programmet automatisk lukkes som svar på administratorpolitikken.
BadRequestDer opstod en parsefejl under behandling af en anmodning.
Client_ResetForbindelsen mellem klienten og serveren blev lukket, inden anmodningen kunne tildeles til en arbejdsproces. Den mest almindelige årsag til dette er, at klienten afbryder forbindelsen til serveren for tidligt.
Connection_Abandoned_By_AppPoolEn arbejdsproces fra programpuljen er afsluttet uventet, eller en ventende anmodning ignoreres, ved at håndteringen af den lukkes.
Connection_Abandoned_By_ReqQueueEn arbejdsproces fra programpuljen er afsluttet uventet, eller en ventende anmodning ignoreres, ved at håndteringen af den lukkes. Specifik for Windows Vista og Windows Server 2008.
Connection_DroppedForbindelsen mellem klienten og serveren blev lukket, inden serveren kunne sende den endelige svarpakke. Den mest almindelige årsag til dette er, at klienten afbryder forbindelsen til serveren for tidligt.
Connection_Dropped_List_FullListen over afbrudte forbindelser mellem klienter og serveren er fuld. Specifik for Windows Vista og Windows Server 2008.
ConnLimitDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da forbindelsesgrænsen for webstedsniveauet er nået eller overskredet.
Connections_RefusedKernehukommelsen NonPagedPool har mistet under 20 MB, og http.sys er holdt op med at modtage nye forbindelser
DisabledDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da en administrator har placeret programmet offline.
EntityTooLargeEn enhed har overskredet den tilladte maksimumstørrelse.
FieldLengthGrænsen for en feltlængde blev overskredet.
ForbiddenDer blev registreret et forbudt element eller en sekvens under parsing.
SidehovedDer opstod en parsefejl i en header.
HostnameDer opstod en parsefejl under behandling af et værtsnavn.
InternalDer opstod en intern serverfejl (en HTTP-fejl 500).
Invalid_CR/LFDer opstod en ugyldig vognretur eller et ugyldigt linjeskift.
LengthRequiredDer manglede en værdi for den påkrævede længde.
I/TDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da der opstod en intern fejl, f.eks. en fejl under allokering af hukommelse.
N/IDer opstod fejl på grund af manglende implementering (en HTTP-fejl 501), eller der opstod en fejl på grund af en tjeneste, der ikke er tilgængelig (en HTTP-fejl 503) på grund af kodning af en ukendt overførsel.
TalDer opstod en parsefejl under behandling af et tal.
PreconditionDer manglede en nødvendig forudsætning.
QueueFullDer opstod en fejl om, at tjenesten ikke er tilgængelig (en HTTP-fejl 503). Tjenesten er ikke tilgængelig, da køen for programanmodninger er fuld.
RequestLengthGrænsen for en anmodningslængde blev overskredet.
Timer_AppPoolForbindelsen blev afbrudt, da en anmodning ventede for længe på at blive behandlet i en kø for programanmodninger. Varigheden af denne timeout er ConnectionTimeout. Denne værdi er som standard angivet til to minutter.
Timer_ConnectionIdleForbindelsen blev afbrudt og forbliver inaktiv. Varigheden for ConnectionTimeout er som standard angivet til to minutter.
Timer_EntityBodyForbindelsen blev afbrudt, inden enhedskernen i anmodningen blev modtaget. Når det er tydeligt, at en anmodning har en enhedskerne, aktiveres timeren Timer_EntityBody af HTTP-API. Som udgangspunkt er grænsen for denne timer angivet til værdien ConnectionTimeout (typisk 2 minutter). Hver gang der modtages en anden dataindikation for denne anmodning, nulstilles timeren af HTTP-API for at give forbindelsen to minutter mere (eller hvad der nu er angivet i ConnectionTimeout).
Timer_HeaderWaitForbindelsen er udløbet, da headerparsing for en anmodning overskred standardbegræsningen på to minutter.
Timer_MinBytesPerSecondForbindelsen blev afbrudt, da klienten ikke modtog et svar inden for rimelig tid. Svarhastigheden var langsommere end standardhastigheden på 240 bytes/sek. Dette kan kontrolleres ved hjælp af metabaseegenskaben MinFileBytesPerSec.
Timer_ReqQueueForbindelsen blev afbrudt, da en anmodning ventede for længe på at blive behandlet i en kø for programanmodninger. Varigheden af denne timeout er ConnectionTimeout. Denne værdi er som standard angivet til to minutter. Specifik for Windows Vista og Windows Server 2008.
Timer_ResponseReserveret. Bruges ikke i øjeblikket.
Timer_SslRenegotiation Forbindelsen blev afbrudet, da en SSL-genforhandling mellem klienten og serveren overskred standardbegrænsningen for timeout på to minutter.
URL-adresseDer opstod en parsefejl under behandling af en URL-adresse.
URL_LengthEn URL-adresse overskred den tilladte maksimumstørrelse.
VerbumDer opstod en parsefejl under behandling af et verbum.
Version_N/SDer opstod en fejl om manglende understøttelse af versionen (en HTTP-fejl 505).

Referencer

Du kan finde flere oplysninger om tilføjelse af yderligere felter til logføring af fejl i IIS HTTP ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
832975 Der er nu yderligere egenskaber tilgængelige for logføring i filen Httperr #.log i IIS 6.0 og IIS 7.0 . Artiklen er evt. på engelsk.
Bemærk! Dette er en artikel til hurtig udgivelse, som er oprettet direkte i Microsofts supportafdeling. Oplysningerne i artiklen præsenteres som de og behandler aktuelle problemer. Fordi artiklen er blevet udgivet hurtigt, kan der forekomme slåfejl, og artiklen kan blive redigeret uden varsel. Se andre forbehold under Vilkår for anvendelse.

Egenskaber

Artikel-id: 820729 - Seneste redigering: 30. november 2012 - Redigering: 2.0
Nøgleord: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Send feedback

 

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