Šobrīd esat bezsaistē, tiek gaidīts atkārtots savienojums ar internetu

Kļūda, piesakoties programmā HTTP API

Kopsavilkums
Šajā rakstā aplūkotas hiperteksta pārsūtīšanas protokola (HTTP) API kļūdu reģistrēšanas iespējas.

Daļu kļūdu, kuras rodas uz HTTP balstītā lietojumprogrammā, automātiski apstrādā HTTP API, un tās netiek nodotas apstrādei lietojumprogrammā. Tas tiek darīts, jo pretējā gadījumā šādas kļūdas, kas rodas bieži, pārslogotu kļūdu žurnālu vai lietojumprogrammas apdarinātāju.

Tālāk izklāstītajās tēmās aprakstīti dažādi HTTP API kļūdu reģistrēšanas aspekti.
Papildindormācija

HTTP API kļūdu reģistrēšanas konfigurēšana

Lai HTTP API kļūdu reģistrēšana tiktu konfigurēta automātiski, atveriet sadaļu Labot automātiski. Ja vēlaties konfigurēt HTTP API kļūdu reģistrēšanu pats, atveriet sadaļu Labot patstāvīgi.

Labot automātiski



Lai automātiski novērstu šo problēmu, noklikšķiniet uz pogas vai saites Fix it. Dialoglodziņā Failu lejupielāde noklikšķiniet uz Palaist un pēc tam izpildiet vednī Fix it sniegtos norādījumus.



Piezīmes.
  • Šis vednis, iespējams, būs pieejams tikai angļu valodā. Tomēr automātiskā labošana darbojas arī operētājsistēmas Windows citu valodu versijās.
  • Ja pašlaik neatrodaties pie tā datora, kurā ir radusies problēma, saglabājiet Fix it risinājumu zibatmiņas diskā vai kompaktdiskā un pēc tam palaidiet to datorā, kurā ir radusies problēma.



Labot patstāvīgi

HTTP API kļūdu reģistrēšanu regulē trīs reģistra vērtības atslēgā HTTP \Parameters. Šīs atslēgas atrodas šajā reģistra atslēgā:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Piezīme. Konfigurācijas vērtību atrašanās vieta un forma operētājsistēmas Microsoft Windows jaunākās versijās var mainīties.

Lai mainītu reģistra vērtības un skatītu vai modificētu žurnālfailus un mapi, kurā tie atrodas, jums ir jābūt administratora/lokālās sistēmas akreditācijas datiem.

Reģistra vērtībās saglabātā konfigurācijas informācija tiek nolasīta, startējot HTTP API draiveri. Tāpēc, ja maināt iestatījumus, ir jāaptur un pēc tam jārestartē jaunais draiveris, lai nolasītu jaunās vērtības. Lai to izdarītu, ierakstiet šādas konsoles komandas:
net stop http
net start http
Žurnālfailu nosaukšanai tiek izmantota šāda nosaukumdošanas konvencija:
httperr + kārtas numurs + .log
Piemērs. httperr4.log
Sasniedzot maksimālo lielumu, kas norādīts reģistra vērtībā ErrorLogFileTruncateSize, žurnālfaili tiek veidoti no jauna. Šī vērtība nedrīkst būt mazāka par vienu megabaitu (MB).

Ja kļūdu reģistrēšanas konfigurācija nav derīga vai ja rodas kļūda, kamēr HTTP API raksta datus žurnālfailos, HTTP API izmanto notikumu reģistrēšanu, lai informētu administratorus, ka kļūdu reģistrēšana nenotiek.

Šī tabula apraksta reģistra konfigurācijas vērtības.
Reģistra vērtībaApraksts
EnableErrorLoggingDWORD, kam var iestatīt vērtību TRUE, lai iespējotu kļūdu reģistrēšanu, vai FALSE, lai to atspējotu. Noklusējuma vērtība ir TRUE.
ErrorLogFileTruncateSizeDWORD, kas norāda kļūdu žurnālfaila maksimālo lielumu baitos. Noklusējuma vērtība ir viens MB (0x100000).

Piezīme. Norādītā vērtība nevar būt mazāka par noklusējuma vērtību.
ErrorLoggingDirString tipa parametrs, kas norāda, kur HTTP API saglabā reģistrācijas failus.

HTTP API norādītajā mapē izveido apakšmapi HTTPERR un saglabā žurnālfailus apakšmapē. Šai apakšmapei un žurnālfailiem ir vienādi atļauju iestatījumi. Administratora un lokālās sistēmas kontiem ir pilna piekļuve. Citiem lietotājiem nav piekļuves.

Šī ir noklusējuma mape, ja tā nav norādīta reģistrā:
%SystemRoot%\System32\LogFiles

Piezīme. Virknes ErrorLoggingDir vērtībai ir jābūt pilnībā kvalificētam lokālajam ceļam. Tomēr tas var ietvert %SystemRoot%. Nevar izmantot tīkla disku vai tīkla koplietojumu.

Uz sākumu

HTTP API kļūdu žurnālu formāts

Parasti HTTP API kļūdu žurnālfailiem ir tāds pats formāts kā W3C kļūdu žurnāliem, izņemot to, ka HTTP API kļūdu žurnālfailos nav kolonnu virsrakstu. Katrā HTTP API kļūdu žurnāla rindiņā tiek reģistrēta viena kļūda. Lauki tiek sakārtoti noteiktā secībā. Katru lauku no iepriekšējā atdala viena atstarpe (0x0020). Katrā laukā pluszīmes (0x002B) aizstāj atstarpes rakstzīmes, tabulatorus un nedrukājamās kontroles rakstzīmes.

Tabulā norādīti kļūdu žurnāla ieraksta lauki un lauku secība.
LauksApraksts
DatumsLaukam Datums ir W3C formāts. Šis lauks ir balstīts uz universālo koordinēto laiku (UTC). Laukam Datums vienmēr ir desmit rakstzīmes, ko pieraksta kā GGGG-MM-DD. Piemēram, 2003. gada 1. maijs tiek izteikts kā 2003-05-01.
LaiksLaukam Laiks ir W3C formāts. Šis lauks ir balstīts uz UTC. Laukam Time vienmēr ir astoņas rakstzīmes, ko pieraksta kā MM:HH:SS. Piemēram, 5:30 PM (UTC) izsaka kā 17:30:00.
Klienta IP adreseIetekmētā klienta IP adrese. Vērtība šajā laukā var būt IPv4 adrese vai IPv6 adrese. Ja klienta IP adrese ir IPv6 adrese, tajā ir iekļauts arī lauks ScopeId.
Klienta portsIetekmētā klienta porta numurs.
Servera IP adreseIetekmētā servera IP adrese. Vērtība šajā laukā var būt IPv4 adrese vai IPv6 adrese. Ja servera IP adrese ir IPv6 adrese, tajā ir iekļauts arī lauks ScopeId.
Servera portsIetekmētā servera porta numurs.
Protokola versijaProtokola versija, kas tiek izmantota.

Ja savienojums nav pietiekami parsēts, lai noteiktu protokola versiju, par tukšā lauka vietturi tiek izmantota defise (0x002D).

Ja galvenās versijas vai jaunākās versijas numurs, kas tiek parsēts, ir vienāds vai lielāks par 10, versija tiek reģistrēta kā HTTP/?.?.
VerbsVerba stāvoklis, ko nodod pēdējais parsētais pieprasījums. Ir iekļauti nezināmi verbi, bet jebkurš verbs, kas ir garāks par 255 baitiem, tiek apcirsts. Ja verbs nav pieejams, par tukšā lauka vietturi tiek izmantota defise (0x002D).
CookedURL + vaicājumsVietrādis URL un jebkurš ar to saistīts vaicājums tiek reģistrēts kā viens lauks, kas ir atdalīts ar jautājuma zīmi (0x3F). Lauks tiek apcirsts līdz 4096 baitiem, kas ir lauka garuma ierobežojums.

Ja šis URL ir parsēts, tas tiek reģistrēts, izmantojot lokālās kodu lapas konvertēšanu, un tiek uzskatīts par unikoda lauku.

Ja šis URL reģistrēšanas laikā nav parsēts, tas tiek precīzi nokopēts, nekonvertējot to unikodā.

Ja HTTP API nevar parsēt šo URL, par tukšā lauka vietturi tiek izmantota defise (0x002D).
Protokola statussProtokola statusa vērtība nevar būt lielāka par 999.

Ja ir pieejams atbildes uz pieprasījumu protokola statuss, tas tiek reģistrēts šajā laukā.

Ja protokola statuss nav pieejams, par tukšā lauka vietturi tiek izmantota defise (0x002D).
SiteIdNetiek izmantota šajā HTTP API versijā. Šajā laukā vienmēr tiek lietota viettura defise (0x002D).
Iemesla frāzeŠajā laukā ir virkne, kas identificē reģistrētās kļūdas tipu. Šis lauks nekad netiek atstāts tukšs.
Rindas nosaukumsŠis ir pieprasījuma rindas nosaukums.
Tālāk norādītās parauga rindiņas ir no HTTP API kļūdu žurnāla:
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
Uz sākumu

Kļūdu tipi, ko reģistrē HTTP API

HTTP API reģistrē kļūdas ziņojumus klientiem, savienojuma taimautus, bāreņpieprasījumus un izbeigtos savienojumus, kas tiek nepareizi apstrādāti.

Tālāk uzskaitīti to kļūdu tipi, kādas reģistrē HTTP API:
  • Atbildes klientiem HTTP API nosūta klientam kļūdas ziņojumu, piemēram, kļūdu Nr. 400, ko izraisījusi pēdējā saņemtā pieprasījuma parsēšanas kļūda. Pēc kļūdas ziņojuma nosūtīšanas HTTP API izbeidz savienojumu.
  • Savienojuma taimauti HTTP API iestājas savienojuma taimauts. Ja savienojuma taimauta iestāšanās brīdī notiek pieprasījuma gaidīšana, pieprasījums tiek izmantots, lai sniegtu papildinformāciju par savienojumu kļūdu žurnālā.
  • Bāreņpieprasījumi Lietotāja režīma pieprasījums tiek negaidīti izbeigts, kamēr rindā vēl ir ievietoti pieprasījumi, kas tiek maršrutēti šim procesam. HTTP API reģistrē bāreņpieprasījumus kļūdu žurnālā.
Konkrēti kļūdu tipi tiek raksturoti ar Iemesla frāzes virknēm, kas vienmēr ir redzamas katras kļūdas rindiņas pēdējā laukā. Šajā tabulā ir identificētas HTTP API iemesla frāzes.
Iemesla frāzeApraksts

AppOfflineRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo lietojumprogrammas kļūdu dēļ lietojumprogramma pārslēgusies bezsaistē.
AppPoolTimerRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo lietojumprogrammu pūla process ir pārāk aizņemts, lai apstrādātu pieprasījumu.
AppShutdownRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo lietojumprogramma tika automātiski izslēgta, ievērojot administratora politiku.
BadRequestApstrādājot pieprasījumu, radās parsēšanas kļūda.
Client_ResetKlienta un servera savienojums tika aizvērts, pirms pieprasījumu varēja piešķirt darbinieka procesam. Šī problēma visbiežāk rodas tāpēc, ka klients priekšlaicīgi slēdz savienojumu ar serveri.
Connection_Abandoned_By_AppPoolDarbinieka process lietojumprogrammas pūlā ir negaidīti beidzis darbību vai atstājis gaidošu pieprasījumu, aizverot tā turi.
Connection_Abandoned_By_ReqQueueDarbinieka process lietojumprogrammas pūlā ir negaidīti beidzis darbību vai atstājis gaidošu pieprasījumu, aizverot tā turi. Attiecas uz sistēmām Windows Vista un Windows Server 2008
Connection_DroppedKlienta un servera savienojums tika slēgts, pirms serveris varēja nosūtīt galīgo atbildes paketi. Šī problēma visbiežāk rodas tāpēc, ka klients priekšlaicīgi slēdz savienojumu ar serveri.
Connection_Dropped_List_FullStarp klientu un serveri izbeigto savienojumu saraksts ir pilns. Attiecas uz sistēmām Windows Vista un Windows Server 2008
ConnLimitRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo ir sasniegts vai pārsniegts vietnes līmeņa savienojumu ierobežojums.
Connections_RefusedKodola NonPagedPool atmiņa ir samazinājusies zem 20 MB, un http.sys ir pārtraucis jaunu savienojumu saņemšanu.
AtspējotsRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo administrators ir pārslēdzis programmu bezsaistes režīmā.
EntityTooLargeEntītija pārsniedz maksimālo pieļaujamo lielumu.
FieldLengthIr pārsniegts lauka garuma ierobežojums.
AizliegtsParsēšanas laikā tika atrasts aizliegts elements vai secība.
GalveneGalvenē radās parsēšanas kļūda.
Resursdatora nosaukumsApstrādājot resursdatora nosaukumu, radās parsēšanas kļūda.
IekšējaRadās iekšēja servera kļūda (HTTP kļūda 500).
Invalid_CR/LFRadās nederīga rakstatgrieze vai rindas padeve.
LengthRequiredTrūkst nepieciešamā garuma vērtības.
Nav norādītsRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo radās iekšēja kļūda (piemēram, atmiņas iedalīšanas kļūme).
N/IRadās ar neīstenošanu saistīta kļūda (HTTP kļūda 501) vai pakalpojuma nepieejamības kļūda (HTTP kļūda 503) nezināmas pārsūtīšanas kodēšanas dēļ.
SkaitlisApstrādājot skaitli, radās parsēšanas kļūda.
PriekšnoteikumsTrūkst obligāta priekšnoteikuma.
QueueFullRadās pakalpojuma nepieejamības kļūda (HTTP kļūda 503). Pakalpojums nav pieejams, jo lietojumprogrammas pieprasījumu rinda ir pilna.
RequestLengthIr pārsniegts pieprasījuma garuma ierobežojums.
Timer_AppPoolSavienojums beidzies, jo pieprasījums pārāk ilgi gaidīja lietojumprogrammu pūla rindā, lai servera lietojumprogramma to izņemtu no rindas un apstrādātu. Šī taimauta ilgums ir ConnectionTimeout. Pēc noklusējuma šī vērtība ir iestatīta uz divām minūtēm.
Timer_ConnectionIdleSavienojums beidzies, un tas ir dīkstāvē. Pēc noklusējuma ConnectionTimeout ilgums ir divas minūtes.
Timer_EntityBodySavienojums beidzies, pirms tika saņemts pieprasījuma entītijas pamatteksts. Kad būs skaidrs, ka pieprasījumam ir entītijas pamatteksts, HTTP API ieslēgs Timer_EntityBody taimeri. Sākotnēji šī taimera ierobežojumam ir iestatīta ConnectionTimeout vērtība (parasti 2 minūtes). Ikreiz, kad par šo pieprasījumu tiks saņemta norāde par citādiem datiem, HTTP API atiestatīs taimeri, piešķirot savienojumam vēl divas minūtes (vai citu ConnectionTimeout norādīto vērtību).
Timer_HeaderWaitSavienojums beidzies, jo galvenei, kas parsē pieprasījumu, bija vajadzīgs vairāk laika nekā noklusējuma ierobežojumam noteiktās divas minūtes.
Timer_MinBytesPerSecondSavienojums beidzies, jo klients nesaņēma pietiekami ātru atbildi. Atbildes sūtīšanas ātrums bija lēnāks nekā noklusējuma vērtība 240 baiti sekundē. To var kontrolēt ar metabāzes rekvizītu MinFileBytesPerSec.
Timer_ReqQueueSavienojums beidzies, jo pieprasījums pārāk ilgi gaidīja lietojumprogrammu pūla rindā, kamēr servera lietojumprogramma to izņems no rindas. Šī taimauta ilgums ir ConnectionTimeout. Pēc noklusējuma šī vērtība ir iestatīta uz divām minūtēm. Attiecas uz sistēmām Windows Vista un Windows Server 2008
Timer_ResponseRezervēts. Pašlaik netiek izmantots.
Timer_SslRenegotiationSavienojums beidzies, jo atkārtotās SSL pārrunas starp klientu un serveri prasīja vairāk laika nekā noklusējuma taimauts, kas ir divas minūtes.
URLApstrādājot vietrādi URL, radās parsēšanas kļūda.
URL_LengthPārsniegts vietrāža URL maksimālais pieļaujamais garums.
VerbsApstrādājot verbu, radās parsēšanas kļūda.
Version_N/SAr neatbalstītu versiju saistīta kļūda (HTTP kļūda 505).

Uz sākumu
Uzziņas
Lai iegūtu papildinformāciju par to, kā pievienot papildu laukus datu reģistrēšanai, lai reģistrētu kļūdas, izmantojot IIS HTTP, noklikšķiniet uz norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu.
832975 Datu reģistrēšanai Httperr#.log failā, izmantojot IIS 6.0 un IIS 7.0, tagad ir pieejami papildu rekvizīti (šī informācija var būt angļu valodā)
fixme fix it fixit
Piezīme Šis ir “ātrās publicēšanas” raksts, ko izveidoja Microsoft tehniskā atbalsta pārstāvji. Šajā rakstā ietvertā informācija ir sniegta “tāda, kāda tā ir”, un ir paredzēta tehniskā atbalsta sniegšanai, risinot ārkārtas problēmas. Ņemot vērā īsu raksta sagatavošanas un publicēšanas laiku, rakstā mēdz būt pareizrakstības kļūdas, un vēlāk raksts var tikt pārskatīts bez iepriekšējā brīdinājuma. Plašāku informāciju skatiet lietošanas nosacījumos.
Rekvizīti

Raksta ID: 820729. Pēdējo reizi pārskatīts: 11/30/2012 13:58:00. Pārskatījums: 2.0

  • kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729
Atsauksmes