Sdílet prostřednictvím


Scénář 1: Příklad časového limitu HTTP s využitím trasování trasování událostí pro Windows a příkazů Netsh

Prostřednictvím trasování trasování událostí pro Windows je možné tok dat prostřednictvím komponenty ROZHRANÍ API HTTP Serveru zkontrolovat a diagnostikovat problémy. Uživatelé webové aplikace se například můžou v prohlížeči zobrazovat chybové zprávy, které webová stránka nemůže zobrazit. Na serveru, který je hostitelem webové aplikace, se v protokolu chyb HTTP zobrazuje také položka časového limitu připojení, jak je znázorněno na obrázku 1 níže. Protokol chyb HTTP najdete v následujícím adresáři: %windir%\System32\LogFiles\HTTPERR\.

snímek obrazovky znázorňující příkazové okno netsh H T T P zobrazující protokol chyb H T T P pro vypršení časového limitu

Obrázek 1: Protokol chyb HTTP pro vypršení časového limitu

Generování sestavy trasování trasování trasování pro Windows

Pokud chcete vygenerovat sestavu trasování trasování pro Windows pro komponentu rozhraní API serveru HTTP, spusťte následující kroky z příkazového řádku. V tomto příkladu se trasování spouští na serveru, protože je hostitelem webové aplikace.

Následující postup vygeneruje trasování s názvem httptrace.etl a pak trasování převede na soubor CSV s názvem httptrace.csv. Jak je znázorněno níže, poskytovatel Trasování událostí pro Windows Pro Windows pro rozhraní API serveru HTTP se nazývá Microsoft-Windows-HttpService. Možnost příkazového řádku 0xFFF indikuje, že by se měly zaznamenávat všechny události Trasování událostí pro Windows pro tohoto poskytovatele.

vygenerování trasovací sestavy trasování pro Windows

  1. Spuštění trasování Trasování událostí pro Windows pro komponentu rozhraní API http Serveru: logman.exe spuštění trasování httptrace -p Microsoft–Windows-HttpService 0xFFFF -o httptrace.etl –ets
  2. Reprodukujte problém, aby ho bylo možné zachytit v trasování. V tomto příkladu přejděte k webové aplikaci z klientského počítače, což vede ke zprávě "stránku nelze zobrazit" zobrazenou v klientovi.
  3. Po reprodukování problému zastavte trasování: logman.exe zastavení httptrace –ets
  4. Převod sestavy do formátu CSV: tracerpt.exe httptrace.etl -of CSV -o httptrace.csv
  5. Zobrazte sestavu trasování. V tabulce 1 je uvedený výňatek z trasování CSV.

Zobrazení trasování a diagnostiky

Výsledný soubor CSV pro trasování můžete zobrazit v Excelu nebo libovolném nástroji, který podporuje formát CSV. Následující tabulka 1 ukazuje výňatky z ukázkového trasovacího souboru (httptrace.csv). V sestavě trasování se ve sloupci Úroveň zobrazuje položka s hodnotou 3, která odpovídá upozornění v Trasovacím prostředí pro Windows. Komponenta rozhraní API serveru HTTP se řídí úrovněmi tras pro Windows definovanými v nastavení události událostí pro Windows Windows systému pro Windows. Mezi úrovně Trasování událostí pro Windows patří:

Úroveň Význam
1 Kritický
2 Chyba
3 Varování
4 Infomational
5 Užvaněný

 

U tohoto upozornění typ události (sloupec Typ) hlásí "ConnTimedOut". V následujících sloupcích pro událost ConnTimeOut je konkrétní časovač, jehož platnost vypršela, hlášena jako "Timer_ConnectionIdle". Všimněte si, že sloupec s položkou "Timer_ConnectionIdle" není součástí tabulky kvůli stručnosti a aby nedocházelo k výňatkům nesouvislých sloupců.

Název události Typ ID události Verze Kanál Úroveň
EventTrace Záhlaví 0 2 0 0
Microsoft –Windows-HttpService ChgUrlGrpProp 28 0 16 4
Microsoft –Windows-HttpService AddUrl 31 0 16 4
Microsoft –Windows-HttpService ChgReqQueueProp 30 0 16 4
Microsoft –Windows-HttpService ChgUrlGrpProp 28 0 16 4
Microsoft –Windows-HttpService ChgSrvSesProp 29 0 16 4
Microsoft –Windows-HttpService ChgSrvSesProp 29 0 16 4
Microsoft –Windows-HttpService ConnConnect 21 0 16 4
Microsoft –Windows-HttpService ConnIdAssgn 22 0 16 4
Microsoft –Windows-HttpService RecvReq 1 0 16 4
Microsoft –Windows-HttpService Udělat rozbor 2 0 16 4
Microsoft –Windows-HttpService LogFileWrite 51 0 16 4
Microsoft –Windows-HttpService ConnCleanup 24 0 16 4
Microsoft –Windows-HttpService ConnTimedOut 53 0 16 3

 

Tabulka 1: Výňatky z ukázkové sestavy trasování problému s časovačem

V tomto příkladu je příčinou vypršení platnosti (connTimeOut) časovače záhlaví (Timer_ConnectionIdle) důvod, proč koncoví uživatelé vidí ve svých webových klientech zprávu "stránku nelze zobrazit". Potenciálním důvodem vypršení časového limitu může být pomalé odesílání webových klientů kvůli pomalým připojením. Pokud chcete tento problém vyřešit, můžete hodnotu časového limitu upravit pomocí příkazů Netsh.

Úprava časového limitu přes Netsh a ověření řešení

Příkazy Netsh pro protokol HTTP uvedené níže umožňují IT specialistovi zobrazit a nakonfigurovat hodnoty nastavení v komponentě ROZHRANÍ API serveru HTTP. Změny prostřednictvím příkazů HTTP netsh ovlivňují všechny serverové aplikace hostované komponentou rozhraní API http serveru pro daný počítač. Tyto změny se zachovají při restartování komponenty a restartování počítače. Příkazy NETSH HTTP jsou k dispozici v systémech Windows Vista a Windows Server 2008 a nahrazují nástroj HttpCfg.exe sady Windows Server 2003 Resource Kit při spuštění v systémech Windows Vista a Windows Server 2008. V tomto scénáři upravíme hodnotu časového limitu a pak řešení ověříme. Časovače existují v komponentě rozhraní API serveru HTTP, aby se zajistila dostupnost a ochrana před nadměrnou konfigurací chybně nakonfigurovaného nebo škodlivého uživatele. Úprava časovačů z výchozích hodnot by se měla pečlivě vyhodnotit proti potenciálnímu útoku DoS.

V tomto příkladu jsou weboví klienti za pomalým síťovým připojením, což vede k události Timer_ConnectionIdle Trasování událostí pro Windows. Po zvážení příčiny vypršení časových limitů a vyrovnávání s dopadem na zatížení serveru se rozhodne zvýšit hodnoty časového limitu na hodnotu 240 sekund. Časovač můžete zobrazit a nakonfigurovat následujícím postupem.

konfigurace časovače nečinných připojení (Timer_ConnectionIdle) pomocí netsh

  1. Na serveru otevřete příkazové okno se zvýšenými oprávněními a spuštěním následujícího postupu zobrazte a nakonfigurujte hodnotu časového limitu. Snímek obrazovky s příkazem NETSH HTTP je znázorněn na obrázku 2 níže.
  2. Zobrazení aktuálních hodnot časového limitu: netsh http show timeout
  3. Nakonfigurujte hodnotu časového limitu Timer_ConnectionIdle. V tomto příkladu se hodnota změní na 240 sekund: Netsh http add timeouttype=idleconnectiontimeout value=240

netsh http

Obrázek 2: Příkazové okno Netsh HTTP

Po konfiguraci hodnoty časového limitu znovu spusťte kroky diagnostiky Trasování událostí pro Windows. Pokud je chybový stav opraven, trasování trasování trasování Trasování pro Windows by už nemělo u časovače nečinnosti připojení zobrazovat časový limit úrovně 3 pro Windows.