共用方式為


案例 2:使用 ETW 追蹤剖析器範例

To generate an ETW trace report for the HTTP Server API component, run the steps as shown in the "Generating an ETW Trace Report" section of Scenario 1: HTTP Timeout Example Using ETW Tracing and Netsh Commands, but reproduce the error specific to this scenario. 在此範例中,從用戶端電腦存取 Web 應用程式,導致用戶端上顯示的「400 不正確的要求」訊息。 這些步驟會在伺服器上執行,因為它正在裝載 Web 應用程式。

檢視追蹤和診斷

追蹤產生的 CSV 檔案可以在 Excel 或任何支援 CSV 格式的工具中檢視。 下表 2 顯示範例追蹤檔案 (httptrace.csv) 的摘錄。 在追蹤報表中,[層級] 資料行會顯示值為 「2」 的專案,代表錯誤。 如上所述,HTTP 伺服器 API 元件遵循 LevelType 複雜類型複雜類型一文中定義的 ETW 層級。

ETW 層級包括:1 重大;2 錯誤;3 警告;4 資訊;5 詳細資訊。

發生此錯誤時,事件種類 (Type 資料行) 報告 「ParseRequestFailed」。 在 ParseRequestFailed 事件的後續資料行中,我們會看到 「InvalidHost」 專案。 此專案表示根據 HTTP 通訊協定,HTTP 要求中識別的主機不正確。 請注意,為了簡潔起見,資料表中不包含具有 「InvalidHost」 專案的資料行,並避免發生不連續的資料行。

若要修正此剖析問題,應該更正 Web 用戶端以符合 HTTP RFC 規範。

事件名稱 類型 事件識別碼 版本 通路 層級
EventTrace 標頭 0 2 0 0
Microsoft-Windows-HttpService AddUrl 31 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 ParseRequestFailed 52 0 16 2
Microsoft-Windows-HttpService LogFileWrite 51 0 16 4

 

表 2:剖析問題的範例追蹤報表摘要