Artikkelin tunnus: 820729
Laajenna kaikki | Kutista kaikki

Tällä sivulla

Yhteenveto

Tässä artikkelissa on kuvaus HTTP (Hypertext Transfer Protocol) -ohjelmointirajapinnan virheenkirjausominaisuuksista.

HTTP-ohjelmointirajapinta käsittelee jotkin HTTP-sovelluksessa ilmenevät virheet automaattisesti sen sijaan, että ne lähetettäisiin takaisin sovellukselle käsiteltäviksi. Näin toimitaan siksi, että tällaisten virheiden ilmenemistaajuus saattaa muutoin täyttää tapahtumalokin tai sovelluskäsittelijän.

Seuraavissa ohjeaiheissa on kuvattu erilaiset HTTP-ohjelmointirajapinnan virheenkirjaukseen liittyvät asiat:

Enemmän tietoa

HTTP-ohjelmointirajapinnan virheenkirjauksen määrittäminen

Jos haluat, että HTTP-ohjelmointirajapinnan virheenkirjaus määritetään puolestasi, siirry Korjaa ongelma puolestani -osaan. Jos haluat määrittää HTTP-ohjelmointirajapinnan virheenkirjauksen mieluummin itse, siirry Haluan korjata ongelman itse -osaan.

Korjaa ongelma puolestani



Jos haluat, että tämä ongelma korjataan automaattisesti, napsauta Fix it -ratkaisun painiketta tai linkkiä. Valitse Tiedostojen lataaminen -valintaikkunassa Suorita ja noudata sitten ohjatun Fix it -toiminnon ohjeita.

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


Muistiinpanot
  • Tämä ohjattu toiminto saattaa olla vain englanninkielinen. Automaattinen korjaus toimii kuitenkin myös muiden Windowsin kieliversioiden kanssa.
  • Jos et ole käyttämässä tietokonetta, jossa tämä ongelma ilmenee, tallenna Fix it -ratkaisu muistitikkuun tai CD-levylle ja suorita se sitten tietokoneessa, jossa ongelma ilmenee.



Haluan korjata ongelman itse

HTTP \Parameters-avaimen alla olevat kolme rekisteriarvoa hallitsevat HTTP-ohjelmointirajapinnan virheenkirjausta. Nämä avaimet sijaitsevat seuraavassa rekisteriavaimessa:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Huomautus Kokoonpanoarvojen sijainti ja muoto saattavat muuttua uudemmissa Microsoft Windows -käyttöjärjestelmäversiossa.

Rekisteriarvojen muuttaminen ja lokitiedostojen sekä niiden kansioiden tarkasteleminen tai muokkaaminen edellyttää järjestelmänvalvojan tai paikallisen järjestelmän valtuuksia.

Rekisteriarvojen kokoonpanotiedot luetaan, kun HTTP-ohjelmointirajapintaohjain käynnistyy. Jos siis muutat asetuksia, sinun on lopetettava ohjain ja käynnistettävä se uudelleen, jotta voit lukea arvot. Voit tehdä tämän kirjoittamalla seuraavat konsolikomennot:
net stop http
net start http
Lokitiedostot nimetään seuraavasti:
httperr + jakson numero + .log
Esimerkki: httperr4.log
Lokitiedostot kierrätetään, kun niiden enimmäiskoko saavuttaa ErrorLogFileTruncateSize-rekisteriarvon määrittämän enimmäisarvon. Tämän arvon on oltava vähintään yksi megatavu (Mt).

Jos virheenkirjauksen määritykset eivät ole kelvolliset tai jos järjestelmässä ilmenee jokin virhe, kun HTTP-ohjelmointirajapinta kirjoittaa lokitiedostoihin, HTTP-ohjelmointirajapinta ilmoittaa järjestelmänvalvojille tapahtumankirjauksen avulla, että virheenkirjausta ei tehdä.

Seuraavassa taulukossa on rekisterin kokoonpanoarvojen kuvaukset.
Kutista tämä taulukkoLaajenna tämä taulukko
RekisteriarvoKuvaus
EnableErrorLoggingDWORD-arvo, jonka voi määrittää arvoon TRUE, jos virheenkirjaus halutaan ottaa käyttöön, ja arvoon FALSE, jos se halutaan poistaa käytöstä. Oletusarvo on TRUE.
ErrorLogFileTruncateSizeDWORD-arvo, joka määrittää virheenkirjaustiedoston enimmäiskoon tavuina. Oletusarvo on yksi Mt (0x100000).

Huomautus Määritetty arvo ei voi olla oletusarvoa pienempi.
ErrorLoggingDirTämä merkkijono määrittää kansion, johon HTTP-ohjelmointirajapinta asettaa lokitiedostonsa.

HTTP-ohjelmointirajapinta luo alikansion HTTPERR määritettyyn kansioon ja tallentaa lokitiedostot sitten alikansioon. Tämän alikansion ja lokitiedostojen käyttöoikeusasetukset ovat samat. Järjestelmänvalvojan ja paikallisen järjestelmän tileillä on täydet käyttöoikeudet. Muilla käyttäjillä ei ole käyttöoikeuksia.

Seuraava kansio toimii oletuskansiona, jos kansiota ei ole määritetty rekisteriin:
%SystemRoot%\System32\LogFiles

HuomautusErrorLoggingDir-merkkijonoarvon on oltava täydellinen paikallinen polku. Se saattaa kuitenkin sisältää määrityksen %SystemRoot%. Verkkoasemaa tai jaettua verkkoresurssia ei voi käyttää.

HTTP-ohjelmointirajapinnan virhelokien muoto

Yleisesti ottaen HTTP-ohjelmointirajapinnan virhelokien muoto on sama kuin W3C-virhelokien, mutta HTTP-ohjelmointirajapinnan virhelokitiedostoissa ei ole sarakeotsikoita. Kullekin HTTP-ohjelmointirajapinnan virhelokin riville kirjataan yksi virhe. Kentät ovat näkyvissä tietyssä järjestyksessä. Yksi välilyöntimerkki (0x0020) erottaa kunkin kentän edellisestä. Kussakin kentässä plusmerkit (0x002B) korvaavat erikoismerkit, sarkainlyönnit ja ohjausmerkit, joita ei voi tulostaa.

Seuraavassa taulukossa on eritelty virhelokitietueen kentät ja niiden järjestys.
Kutista tämä taulukkoLaajenna tämä taulukko
KenttäKuvaus
PäivämääräPäivämäärä-kenttä on W3C-muodossa. Tämä kenttä on UTC (Coordinated Universal Time) -ajan mukainen. Päivämäärä-kentässä on aina kymmenen merkkiä muodossa VVVV-KK-PP. Esimerkiksi toukokuun 1. 2003 ilmaistaan muodossa 2003-05-01.
AikaAika-kenttä on W3C-muodossa. Tämä kenttä on UTC-ajan mukainen. Aika-kentässä on aina kahdeksan merkkiä muodossa KK:TT:SS. Esimerkiksi kello 17.30 (UTC) ilmaistaan muodossa 17:30:00.
Asiakkaan IP-osoiteVaikutuksenalaisen asiakkaan IP-osoite. Tämän kentän arvo voi olla joko IPv4-osoite tai IPv6-osoite. Jos asiakkaan IP-osoite on IPv6-osoite, myös ScopeId-kenttä lisätään osoitteeseen.
Asiakkaan porttiVaikutuksenalaisen asiakkaan portin numero.
Palvelimen IP-osoiteVaikutuksenalaisen palvelimen IP-osoite. Tämän kentän arvo voi olla joko IPv4-osoite tai IPv6-osoite. Jos palvelimen IP-osoite on IPv6-osoite, myös ScopeId-kenttä lisätään osoitteeseen.
Palvelimen porttiVaikutuksenalaisen palvelimen portin numero.
ProtokollaversioKäytettävän protokollan versio.

Jos yhteyttä ei ole jäsennetty riittävän hyvin, jotta protokollaversio voitaisiin määrittää, tyhjän kentän paikkamerkkinä käytetään yhdysmerkkiä (0x002D).

Jos jäsennettävä pääversion numero tai väliversion numero on vähintään 10, versioksi kirjataan HTTP/?.?.
VerbVerbitila, jonka viimeksi jäsennetty pyyntö lähettää. Tuntemattomat verbit lisätään, mutta jos jonkin verbin pituus on yli 255 tavua, se katkaistaan tähän pituuteen. Jos verbi ei ole käytettävissä, tyhjän kentän paikkamerkkinä käytetään yhdysmerkkiä (0x002D).
CookedURL + kyselyURL-osoite ja kaikki siihen liittyvät kyselyt kirjataan yhtenä kenttänä, joka erotetaan muista kysymysmerkillä (0x3F). Tämän kentän pituusrajoitus on 4 096 tavua, jonka ylityttyä kenttä katkaistaan.

Jos tämä URL-osoite on jäsennetty ("cooked"), se kirjataan paikallisen koodisivun muunnolla ja sitä käsitellään Unicode-kenttänä.

Jos tätä URL-osoitetta ei ole jäsennetty ("cooked") kirjaukseen aikaan, se kopioidaan täsmällisesti samassa muodossa ilman Unicode-muuntoa.

Jos HTTP-ohjelmointirajapinta ei voi jäsentää tätä URL-osoitetta, tyhjän kentän paikkamerkkinä käytetään yhdysmerkkiä (0x002D).
Protokollan tilaProtokollan tilan pituus ei voi olla yli 999 merkkiä.

Jos pyynnön vastauksen protokollan tila on käytettävissä, se kirjataan tähän kenttään.

Jos protokollan tila ei ole käytettävissä, tyhjän kentän paikkamerkkinä käytetään yhdysmerkkiä (0x002D).
SiteIdEi käytössä tässä HTTP-ohjelmointirajapinnan versiossa. Tässä kentässä näkyy aina paikkamerkin yhdysviiva (0x002D).
SyylauseTässä kentässä on merkkijono, joka määrittää kirjattavan virheen tyypin. Tätä kenttää ei jätetä koskaan tyhjäksi.
Jonon nimiTämä on pyynnön jonon nimi.
Seuraavat esimerkkirivit ovat HTTP-ohjelmointirajapinnan virhelokista:
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

Virhetyypit, jotka HTTP-ohjelmointirajapinta kirjaa

HTTP-ohjelmointirajapinta kirjaa asiakkaille annetut virhevastaukset, yhteyksien aikakatkaisut, orvoiksi jääneet pyynnöt ja katkaistut yhteydet, joita käsitellään virheellisesti.

Seuraavassa luettelossa on määritetty virhetyypit, jotka HTTP-ohjelmointirajapinta kirjaa:
  • Vastaukset asiakkaille HTTP-ohjelmointirajapinta lähettää asiakkaalle virhevastauksen, kuten 400-virheen, joka johtuu viimeksi vastaanotetussa pyynnössä olevasta jäsennysvirheestä. Kun HTTP-ohjelmointirajapinta on lähettänyt virhevastauksen, se katkaisee yhteyden.
  • Yhteyksien aikakatkaisut HTTP-ohjelmointirajapinta aikakatkaisee yhteyden. Jos pyyntö odottaa, kun yhteys aikakatkaistaan, pyynnön avulla saadaan lisätietoja yhteydestä virhelokiin.
  • Orvoiksi jääneet pyynnöt Käyttäjätilaprosessi loppuu odottamatta, kun kyseiseen prosessiin reititettyjä jonossa olevia pyyntöjä on edelleen. HTTP-ohjelmointirajapinta kirjaa orvoiksi jääneet pyynnöt virhelokiin.
Syylausemerkkijonot määrittävät tietyt virhetyypit, jotka näkyvät aina kunkin virherivin viimeisenä kenttänä. HTTP-ohjelmointirajapinnan syylauseet on määritetty seuraavassa taulukossa.
Kutista tämä taulukkoLaajenna tämä taulukko
SyylauseKuvaus

AppOfflinePalvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä, koska sovellus on siirtynyt offline-tilaan sovellusvirheiden vuoksi.
AppPoolTimerPalvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä, koska sovellusvarantoprosessi on liian kiireinen eikä voi käsitellä pyyntöä.
AppShutdownPalvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä, koska sovellus on sammunut automaattisesti järjestelmävalvojakäytännön mukaisesti.
BadRequestPyyntöä käsiteltäessä ilmeni jäsennysvirhe.
Client_ResetAsiakkaan ja palvelimen välinen yhteys suljettiin, ennen kuin pyyntö voitiin määrittää työprosessille. Tämä ilmenee yleensä siksi, että asiakas sulkee yhteyden palvelimeen ennenaikaisesti.
Connection_Abandoned_By_AppPoolSovellusvarannon työprosessi on lopetettu odottamatta tai se on jättänyt odottavan pyynnön orvoksi sulkemalla sen kahvan.
Connection_Abandoned_By_ReqQueueSovellusvarannon työprosessi on lopetettu odottamatta tai se on jättänyt odottavan pyynnön orvoksi sulkemalla sen kahvan. Koskee nimenomaan Windows Vistaa ja Windows Server 2008:aa.
Connection_DroppedAsiakkaan ja palvelimen välinen yhteys suljettiin, ennen kuin palvelin pystyi lähettämään viimeistä vastauspakettiaan. Tämä ilmenee yleensä siksi, että asiakas sulkee yhteyden palvelimeen ennenaikaisesti.
Connection_Dropped_List_FullAsiakkaiden ja palvelimen välisten katkaistujen yhteyksien luettelo on tyhjä. Koskee nimenomaan Windows Vistaa ja Windows Server 2008:aa.
ConnLimitPalvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä, koska sivustotason yhteysrajoitus on saavutettu tai ylitetty.
Connections_RefusedYtimen NonPagedPool-muistia on alle 20 Mt, ja http.sys on lakannut vastaanottamasta uusia yhteyksiä
DisabledPalvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä, koska järjestelmänvalvoja on siirtänyt sovelluksen offline-tilaan.
EntityTooLargeEntiteetti on ylittänyt sallitun enimmäiskoon.
FieldLengthKentän pituusrajoitus on ylitetty.
ForbiddenJäsennyksen yhteydessä havaittiin kielletty elementti tai jakso.
HeaderYlätunnisteessa ilmeni jäsennysvirhe.
HostnameIsäntänimeä käsiteltäessä ilmeni jäsennysvirhe.
InternalIlmeni sisäinen palvelinvirhe (HTTP-virhe 500).
Invalid_CR/LFIlmeni virheellinen rivinvaihtomerkki tai rivinvaihto.
LengthRequiredTarvittavan mittainen arvo puuttuu.
-Palvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä sisäisen virheen (kuten muistin varauksen epäonnistumisen) vuoksi.
N/IIlmeni toteuttamatta jättämiseen liittyvä virhe (HTTP-virhe 501) tai palvelu ei ole käytettävissä -virhe (HTTP-virhe 503) tuntemattoman siirron koodauksen vuoksi.
NumeroNumeroa käsiteltäessä ilmeni jäsennysvirhe.
PreconditionTarvittava esiehto puuttuu.
QueueFullPalvelu ei ole käytettävissä -virhe (HTTP-virhe 503). Palvelu ei ole käytettävissä, koska sovelluspyyntöjono on täynnä.
RequestLengthPyynnön pituusrajoitus on ylitetty.
Timer_AppPoolYhteys umpeutui, koska pyyntö on odottanut liian pitkään sovellusvarantojonossa sitä, että palvelinsovellus poistaisi sen jonosta ja käsittelisi sen. Tämä aikakatkaisun kesto on ConnectionTimeout. Oletusarvon mukaan tämä arvo on kaksi minuuttia.
Timer_ConnectionIdleYhteys umpeutui ja jäi käyttämättömään tilaan. ConnectionTimeout-oletuskesto on kaksi minuuttia.
Timer_EntityBodyYhteys umpeutui ennen pyyntöentiteetin tekstiosan saapumista. Kun on selvää, että pyynnöllä on entiteetin tekstiosa, HTTP-ohjelmointirajapinta ottaa Timer_EntityBody-ajastimen käyttöön. Tämän ajastimen alustava rajoitus on ConnectionTimeout-arvo (yleensä 2 minuuttia). Aina kun tämä pyyntö saa toisen tietoilmaisun, HTTP-ohjelmointirajapinta nollaa ajastimen niin, että yhteys saa kaksi lisäminuuttia (tai mitä kohtaan ConnectionTimeout on määritetty).
Timer_HeaderWaitYhteys on umpeutunut, koska pyyntöä jäsentävä ylätunniste on käyttänyt kahden minuutin oletusrajoitusta enemmän aikaa.
Timer_MinBytesPerSecondYhteys on umpeutunut, koska asiakas ei saanut vastausta kohtuullisella nopeudella. Vastauksen lähetysnopeus oli hitaampi kuin oletusarvo 240 tavua/s. Tätä voidaan hallita MinFileBytesPerSec-metakantaominaisuudella.
Timer_ReqQueueYhteys umpeutui, koska pyyntö on odottanut liian pitkään sovellusvarantojonossa sitä, että palvelinsovellus poistaisi sen jonosta. Tämä aikakatkaisun kesto on ConnectionTimeout. Oletusarvon mukaan tämä arvo on kaksi minuuttia. Koskee nimenomaan Windows Vistaa ja Windows Server 2008:aa.
Timer_ResponseVarattu. Ei parhaillaan käytössä.
Timer_SslRenegotiation Yhteys on umpeutunut, koska asiakkaan ja palvelimen välinen SSL-uudelleenneuvottelu on ylittänyt kahden minuutin oletusaikakatkaisurajan.
URLURL-osoitetta käsiteltäessä ilmeni jäsennysvirhe.
URL_LengthURL-osoitteen koko on ylittänyt sallitun enimmäiskoon.
VerbVerbiä käsiteltäessä ilmeni jäsennysvirhe.
Version_N/SVersiota ei tueta -virhe (HTTP-virhe 505).

Suositukset

Saat lisätietoja IIS HTTP -virheenkirjauksen lisäkirjauskenttien lisäämisestä napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
832975 Kirjauksen lisäominaisuuksia on nyt saatavilla Httperr#.log-tiedostossa IIS 6.0:ssa ja IIS 7.0:ssa (Tämä artikkeli saattaa olla englanninkielinen)
Huomautus Tämä on niin sanottu nopeasti julkaistava (?fast publish?) artikkeli, joka on laadittu suoraan Microsoftin tukiorganisaatiossa. Tässä olevat tiedot toimitetaan sellaisenaan vastauksena esiin tulleisiin ongelmiin. Koska aineisto on tuotu saataville nopeasti, se saattaa sisältää painovirheitä ja tietoja saatetaan muokata milloin tahansa ilman erillistä ilmoitusta. Lue muut huomioon otettavat seikat käyttöehdoista.

Ominaisuudet

Artikkelin tunnus: 820729 - Viimeisin tarkistus: 30. marraskuuta 2012 - Versio: 2.0
Hakusanat: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Anna palautetta

 

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