Jelenleg nem kapcsolódik az internethez. Várakozás a kapcsolat helyreállítására

Hibanaplózás a HTTP API felületein

Összefoglaló
Ez a cikk a Hypertext Transfer Protocol (HTTP) protokoll API felületeinek hibanaplózási funkcióit ismerteti.

A HTTP-alapú alkalmazások egyes hibáit a HTTP API automatikusan kezeli, ahelyett, hogy továbbítaná egy alkalmazásnak. Ennek az az oka, hogy az ilyen hibák gyakorisága túl nagy terhelést jelenthetne az eseménynaplók vagy alkalmazáskezelők számára.

A következő témakörök a HTTP API hibanaplózás különböző aspektusait ismertetik:
  • A HTTP API hibanaplózás konfigurálása
    A beállításjegyzék beállításai szabályozzák a HTTP API által naplózott hibákat, a naplófájlok maximális méretét és a naplófájlok helyét.
  • A HTTP API hibanaplók formátuma
    A HTTP API által létrehozott naplófájlok megfelelnek a World Wide Web Consortium (W3C) naplófájlokra vonatkozó előírásainak. A naplófájlok a szabványos eszközökkel elemezhetők. A HTTP API naplófájlok azonban a W3C naplófájloktól eltérően nem tartalmazzák az oszlopneveket.
  • A HTTP API által naplózott hibatípusok
    A HTTP API számos gyakori hiba naplózását végzi.
További információ

A HTTP API hibanaplózás konfigurálása

Ha szeretné, hogy a HTTP API hibanaplózás konfigurálása automatikusan történjen, ugorjon az „Automatikus javítás” című részhez. Ha saját kezűleg szeretné konfigurálni a HTTP API hibanaplózást, ugorjon a „Kézi javítás” című részhez.

Automatikus javítás



A probléma automatikus javításához kattintson Fix it gombra vagy a hivatkozásra. Ezután kattintson a Futtatás gombra a Fájl letöltése párbeszédpanelen, és kövesse az automatikus javítási varázsló lépéseit.



Megjegyzések:
  • Előfordulhat, hogy a varázsló csak angol nyelven érhető el. Az automatikus javítás ugyanakkor a Windows többi nyelvi verziójával is működik.
  • Ha ezt a cikket nem azon a számítógépen tekinti meg, amelyen a problémát tapasztalja, az automatikus javítást mentse egy USB-meghajtóra vagy CD-re, és azon a számítógépen futtassa, amelyen a hiba jelentkezik.



Kézi javítás

A HTTP API hibanaplózást egy HTTP\Parameters kulcs alatt található három beállításazonosító vezérli. Ezeknek a kulcsok a következő beállításkulcsban találhatók:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Megjegyzés: A konfigurációs értékek helye és formája a Microsoft Windows operációs rendszer újabb verzióiban eltérő lehet.

A beállításazonosítók módosításához, valamint a naplófájlok és az azokat tartalmazó mappa megtekintéséhez és módosításához rendszergazdai vagy egy helyi rendszerfiók hitelesítő adatai szükségesek.

A beállításazonosítókban található konfigurációs adatokat a rendszer a HTTP API illesztőprogram indításakor olvassa be. Ezért a beállítások módosítását követően le kell állítania, majd újra kell indítania az illesztőprogramot az új értékek beolvasásához. Ehhez írja be a következő konzolparancsokat:
net stop http
net start http
A naplófájlok elnevezése a következő elnevezési szabályok szerint történik:
httperr + sorszám + .log
Például: httperr4.log
A rendszer újrahasznosítja a naplófájlokat, amikor elérik az ErrorLogFileTruncateSize beállításazonosítóban meghatározott maximális méretet. Ez az érték nem lehet 1 megabájtnál (MB) kisebb.

Ha a hibanaplózás konfigurációja érvénytelen, vagy ha bármilyen hiba történik, miközben a HTTP API a naplófájlokba ír, akkor a HTTP API eseménynaplózással tájékoztatja a rendszergazdákat a hibanaplózás leállásáról.

Az alábbi táblázat a beállításjegyzék konfigurációs értékeit ismerteti.
BeállításazonosítóLeírás
EnableErrorLoggingOlyan Duplaszó, amely TRUE értékre állítva engedélyezi, FALSE értékre állítva pedig letiltja a hibanaplózást. Az alapértelmezett érték TRUE.
ErrorLogFileTruncateSizeOlyan Duplaszó, amely a hibanaplófájlok maximális méretét határozza meg bájtban. Az alapértelmezett érték egy MB (0x100000).

Megjegyzés: A megadott érték nem lehet kisebb, mint az alapértelmezett érték.
ErrorLoggingDirEz a Karakterlánc határozza meg azt a mappát, amelybe a HTTP API a naplófájlokat helyezi.

A HTTP API létrehoz egy HTTPERR nevű almappát a megadott mappában, és ebben tárolja a naplófájlokat. Az almappa és a naplófájlok azonos engedélybeállításokat kapnak. A rendszergazdai és a helyi rendszerfiókok teljes körű hozzáféréssel rendelkeznek. A többi felhasználó nem rendelkezik hozzáféréssel.

Ha a mappa nincs meghatározva a beállításjegyzékben, akkor az alapértelmezett mappa a következő:
%SystemRoot%\System32\LogFiles

Megjegyzés: Az ErrorLoggingDir karakterlánc értéke csak teljes helyi elérési út lehet. A %SystemRoot% helyet azonban tartalmazhatja. Hálózati meghajtó vagy hálózati megosztás nem használható.

a lap tetejére

A HTTP API hibanaplók formátuma

A HTTP API hibanaplófájljainak formátuma általánosságban megegyezik a W3C-hibanaplókéval, de a HTTP API hibanaplófájljai nem tartalmaznak oszlopfejléceket. A HTTP API hibanapló minden sora egy-egy hibát rögzít. A mezők meghatározott sorrendben jelennek meg. Az egymást követő mezőket egy szimpla szóköz karakter (0x0020) választja el egymástól. Minden mezőben pluszjelek (0x002B) helyettesítik a szóközöket, a tabulátorokat és a nem nyomtatható vezérlőkaraktereket.

A következő táblázat a hibanaplórekord mezőit és azok sorrendjét ismerteti.
MezőLeírás
DátumA Dátum mező a W3C formátumot követi. A mező az egyezményes világidőnek (UTC) megfelelően jelenik meg. A Dátum mező mindig tíz karakterből áll, ÉÉÉÉ-HH-NN formátumban. 2003. május 1. például 2003-05-01 formában jelenik meg.
IdőAz Idő mező a W3C formátumot követi. A mező az egyezményes világidőn (UTC) alapul. Az Idő mező mindig nyolc karakterből áll, ÓÓ:PP:MM formátumban. A délután 5:30 (UTC)például 17:30:00 formában jelenik meg.
Ügyfél IP-címeAz érintett ügyfél IP-címe. A mezőben szereplő érték IPv4 cím vagy IPv6 cím lehet. Ha az ügyfél IP-címe IPv6 cím, akkor a ScopeId mező is szerepel a címben.
ÜgyfélportAz érintett ügyfél portszáma.
Kiszolgáló IP-címeAz érintett kiszolgáló IP-címe. A mezőben szereplő érték IPv4 cím vagy IPv6 cím lehet. Ha a kiszolgáló IP-címe IPv6 cím, akkor a ScopeId mező is szerepel a címben.
KiszolgálóportAz érintett kiszolgáló portszáma.
ProtokollverzióAz alkalmazott protokoll verziószáma.

Ha a kapcsolat elemzése során nem sikerült megállapítani a protokollverziót, akkor az üres mező helyőrzőjeként egy kötőjel (0x002D) szerepel.

Ha az elemzett fő -vagy alverziószám legalább 10 értékű, akkor a rendszer HTTP/?.? értékként naplózza a verziószámot.
MűveletA legutóbb elemzett kérelem által továbbított műveleti állapot. Az ismeretlen műveletek is megjelennek, de a 255 bájtnál nagyobb méretű műveleteket a rendszer erre a hosszra csonkolja. Ha egy művelet nem érhető el, akkor az üres mező helyőrzőjeként egy kötőjel (0x002D) szerepel.
Formázott URL (CURL) + LekérdezésAz URL-címet és az ahhoz társított lekérdezéseket egy mezőben, kérdőjellel (0x3F) elválasztva naplózza a rendszer. A rendszer 4096 bájt hossznál csonkolja a mezőt.

Ha a rendszer már elemezte („formázta”) az URL-címet, akkor az helyi kódlapkonverzióval kerül a naplóba, és a rendszer Unicode-mezőként kezeli.

Ha a rendszer nem elemezte („formázta”) az URL-címet a naplózáskor, akkor változatlanul, Unicode-konverzió nélkül másolja.

Ha a HTTP API nem tudja elemezni az URL-címet, akkor az üres mező helyőrzőjeként egy kötőjel (0x002D) szerepel.
ProtokollállapotA protokollállapot nem lehet 999-nél nagyobb.

Ha egy kérelemre adott válasz protokollállapota elérhető, akkor ebben a mezőben naplózza a rendszer.

Ha a protokollállapot nem érhető el, akkor az üres mező helyőrzőjeként egy kötőjel (0x002D) szerepel.
SiteIdA HTTP API jelen verziója nem használja. Ebben a mezőben minden esetben egy helyőrző kötőjel (0x002D) jelenik meg.
Ok kifejezésEz a mező egy olyan karakterláncot tartalmaz, amely azonosítja a naplózott hiba típusát. Ez a mező soha nem üres.
Várólista neveA kérelmek várólistájának neve.
Az alábbi példasorok egy HTTP API hibanaplóból származnak:
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
a lap tetejére

A HTTP API által naplózott hibatípusok

A HTTP API az ügyfeleknek küldött hibaüzeneteket, a kapcsolatok időtúllépéseit, az árva kérelmeket és a helytelenül kezelt megszakadt kapcsolatokat naplózza.

Az alábbi lista a HTTP API által naplózott hibatípusokat sorolja fel:
  • Ügyfeleknek küldött válaszok A HTTP API hibaüzenetet küld egy ügyfélnek, például egy 400 kódú hibáról, amelyet a legutóbb fogadott kérelem elemzési hibája okozott. A hibaválasz elküldése után a HTTP API megszakítja a kapcsolatot.
  • Kapcsolatok időtúllépései A HTTP API időtúllépés miatt megszüntet egy kapcsolatot. Ha a kapcsolat időtúllépésekor egy kérelem függőben van, akkor a rendszer a kérelem felhasználásával további információkat rögzít a kapcsolatról a hibanaplóban.
  • Árva kérelmek Egy felhasználói módú folyamat váratlanul befejeződik annak ellenére, hogy még vannak az adott folyamathoz irányított, várakozó kérelmek. A HTTP API rögzíti a hibanaplóban az árva kérelmeket.
A speciális hibatípusokat Ok kifejezés karakterláncok jelölik, amelyek mindig az egyes hibasorok utolsó mezőjében jelennek meg. A következő táblázat a HTTP API Ok kifejezéseit sorolja fel.
Ok kifejezésLeírás

AppOfflineNem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás nem érhető el, mert az alkalmazás hálózati kapcsolata alkalmazáshibák miatt megszűnt.
AppPoolTimerNem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás nem érhető el, mert az alkalmazáskészlet folyamata túlságosan elfoglalt a kérelem kezeléséhez.
AppShutdownNem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás nem érhető el, mert az alkalmazáskészlet a rendszergazdai házirendnek megfelelően automatikusan leállt.
BadRequestEgy kérelem feldolgozása során elemzési hiba történt.
Client_ResetAz ügyfél és a kiszolgáló közötti kapcsolat bezárult, mielőtt a rendszer hozzárendelte volna az adott kérelmet egy munkavégző folyamathoz. Az ilyen működés leggyakoribb oka, hogy az ügyfél idő előtt bezárja a kapcsolatot a kiszolgálóval.
Connection_Abandoned_By_AppPoolAz alkalmazáskészlet egyik munkavégző folyamata váratlanul leállt, vagy árván hagyott egy függőben lévő kérelmet a leírója bezárásával.
Connection_Abandoned_By_ReqQueueAz alkalmazáskészlet egyik munkavégző folyamata váratlanul leállt, vagy árván hagyott egy függőben lévő kérelmet a leírója bezárásával. A Windows Vista és Windows Server 2008 rendszerekre jellemző.
Connection_DroppedAz ügyfél és a kiszolgáló közötti kapcsolat bezárult, mielőtt a kiszolgáló elküldhette volna az utolsó válaszcsomagját. Az ilyen működés leggyakoribb oka, hogy az ügyfél idő előtt bezárja a kapcsolatot a kiszolgálóval.
Connection_Dropped_List_FullAz ügyfelek és a kiszolgáló megszakadt kapcsolatainak listája megtelt. A Windows Vista és Windows Server 2008 rendszerekre jellemző.
ConnLimitNem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás nem érhető el, mert a webhely szintű kapcsolatok száma elérte vagy meghaladta a határértéket.
Connections_RefusedA NonPagedPool kernel memóriája 20 MB alá csökkent, így a http.sys nem fogad további új kapcsolatokat
DisabledNem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás nem érhető el, mert egy rendszergazda megszüntette az alkalmazás hálózati kapcsolatát.
EntityTooLargeEgy entitás meghaladta a maximális megengedett méretet.
FieldLengthEgy mező hossza meghaladta a korlátozást.
ForbiddenA rendszer tiltott összetevőt vagy sorozatot talált az elemzés során.
HeaderEgy fejlécben elemzési hiba történt.
HostnameEgy állomásnév feldolgozása során elemzési hiba történt.
InternalBelső kiszolgálóhiba történt (500-as HTTP-hiba).
Invalid_CR/LFSzabálytalan kocsivissza vagy soremelés.
LengthRequiredEgy szükséges hosszérték hiányzik.
N/ANem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás belső hiba (például sikertelen memórialefoglalás) miatt nem érhető el.
N/INem implementált hiba (501-es HTTP-hiba) vagy nem elérhető szolgáltatás miatti hiba (503-as HTTP-hiba) történt egy ismeretlen átviteli kódolás miatt.
NumberEgy szám feldolgozása során elemzési hiba történt.
PreconditionEgy kötelező előfeltétel hiányzik.
QueueFullNem elérhető szolgáltatás miatti hiba történt (503-as HTTP-hiba). A szolgáltatás nem érhető el, mert az alkalmazás kérelem-várólistája megtelt.
RequestLengthEgy kérelem hossza meghaladta a korlátozást.
Timer_AppPoolA kapcsolat időtúllépés miatt megszakadt, mert egy kérelem túl sokáig várakozott egy alkalmazáskészlet várólistáján arra, hogy egy kiszolgálóalkalmazás eltávolítsa a várólistáról, és feldolgozza. Ez az időtúllépési időtartam a ConnectionTimeout. Az érték alapértelmezés szerinti beállítása két perc.
Timer_ConnectionIdleA kapcsolat időtúllépés miatt megszakadt, és tétlen állapotban marad. A ConnectionTimeout alapértelmezett időtartama két perc.
Timer_EntityBodyA kapcsolat időtúllépés miatt megszakadt a kérelem entitástörzsének érkezése előtt. Ha egyértelmű, hogy egy kérelem rendelkezik entitástörzzsel, a HTTP API bekapcsolja a Timer_EntityBody időzítőt. Az időzítőt kezdetben a ConnectionTimeout értékére állítja be a rendszer (ez általában 2 perc). Amikor az adott kérelemre vonatkozó új adatjelzés érkezik, a HTTP API minden alkalommal alaphelyzetbe állítja az időzítőt, és további két perccel (vagy a ConnectionTimeout megadott értékével) meghosszabbítja a kapcsolat időtartamát.
Timer_HeaderWaitA kapcsolat időtúllépés miatt megszakadt, mert egy kérelem fejléc-elemzése túllépte az alapértelmezett két perces időtartamkorlátot.
Timer_MinBytesPerSecondA kapcsolat időtúllépés miatt megszakadt, mert az ügyfél nem kapott elfogadható sebességű választ. A válaszküldési sebesség lassabb volt az alapértelmezett 240 bájt/másodperces sebességnél. Ez az érték a MinFileBytesPerSec metabázis-tulajdonsággal szabályozható.
Timer_ReqQueueA kapcsolat időtúllépés miatt megszakadt, mert egy kérelem túl sokáig várakozott egy alkalmazáskészlet várólistáján arra, hogy egy kiszolgálóalkalmazás eltávolítsa a várólistáról. Ez az időtúllépési időtartam a ConnectionTimeout. Az érték alapértelmezés szerinti beállítása két perc. A Windows Vista és Windows Server 2008 rendszerekre jellemző.
Timer_ResponseFoglalt. Jelenleg nincs használatban.
Timer_SslRenegotiationA kapcsolat időtúllépés miatt megszakadt, mert az ügyfél és a kiszolgáló közötti SSL-újraegyeztetés túllépte az alapértelmezett két perces időkorlátot.
URLEgy URL-cím feldolgozása során elemzési hiba történt.
URL_LengthEgy URL-cím meghaladta a megengedett maximális méretet.
MűveletEgy művelet feldolgozása során elemzési hiba történt.
Version_N/SNem támogatott verzió miatti hiba történt (505-ös HTTP-hiba).

a lap tetejére
Hivatkozások
Az IIS HTTP hibanaplózás további naplózási mezőkkel történő bővítéséről a Microsoft Tudásbázis következő cikkében tájékozódhat:
832975 Az IIS 6.0 és az IIS 7.0 szolgáltatásban már további tulajdonságok is naplózhatók a Httperr#.log fájlban (Előfordulhat, hogy a tartalom angol nyelven érhető el)
fixme fix it fixit
Megjegyzés: Ez egy „GYORS KÖZZÉTÉTELŰ” cikk, amelyet maga Microsoft támogatási csoportja készített. A benne fogalt információkat a jelentkező problémákra válaszul, az adott állapotukban biztosítjuk. Az anyagok a közzétételük gyorsaságából következően tartalmazhatnak sajtóhibákat, illetve külön értesítés nélkül bármikor átdolgozáson eshetnek át. További tudnivalók olvashatók a felhasználási feltételek között.
Tulajdonságok

Cikkazonosító: 820729 - Utolsó ellenőrzés: 11/30/2012 13:56:00 - Verziószám: 2.0

  • kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729
Visszajelzés
crosoft.com/ms.js" '="">