使用失敗的要求追蹤規則對應用程式要求路由進行疑難解答
適用於:網際網路資訊服務 7.0 和更新版本
失敗的要求追蹤是針對 IIS 7.0 和更新版本中的要求處理失敗進行疑難解答的強大工具。 本文提供啟用失敗要求追蹤規則的步驟,以偵錯失敗和應用程式要求路由中的追蹤步驟。 如需失敗要求追蹤規則的詳細資訊,請參閱 在 IIS 8.5 中使用追蹤對失敗的要求進行疑難解答。
目標
若要設定失敗的要求追蹤規則,並瞭解針對應用程式要求路由進行疑難解答時要尋找的內容。
必要條件
本逐步解說需要下列必要條件:
- 在 Windows 2008 上安裝追蹤角色服務的 IIS 7.0 或更新版本(任何 SKU) 或更新版本。
- Microsoft應用程式要求路由和相依模組。
- 至少有兩部具有工作網站和應用程式的應用程式伺服器。
如果尚未安裝應用程式要求路由,請從下載中心下載,並遵循安裝應用程式要求路由中所述的步驟進行安裝。
另一個先決條件是您已完成 使用應用程式要求路由模組 ,並已設定應用程式要求路由。 應用程式要求路由應該處於工作順序,然後再繼續進行下列各節。
步驟 1:設定失敗的要求追蹤規則
使用 UI 或使用命令行設定應用程式要求路由的失敗要求追蹤規則。
如何使用UI設定失敗的要求追蹤規則
- 啟動 網際網路資訊服務 (IIS) 管理員(inetmgr)。
- 選取 [默認網站]。
- 在 [動作] 窗格的 [設定] 底下,選取 [失敗的要求追蹤...]。
- 在 [ 編輯網站失敗的要求追蹤設定 ] 對話框中,選取 [ 啟用 ] 複選框。
- 選取 [確定] 來儲存變更。
- 選取 [默認網站]。
- 按兩下 [失敗的要求追蹤規則]。
- 在 [ 動作] 窗格中,選取 [ 新增...]。
選取 [所有內容\]\,然後選取 \ [下一步\]。 - 選取 [狀態代碼], 然後輸入 200-399。
選取 [下一步]。 上述設定已建立失敗的要求追蹤規則,以在狀態代碼介於 200 到 399 之間時寫入追蹤。 - 取消選取 ASP、ASPNET 和 ISAPI 擴充功能。 選取 WWW 伺服器之後,請取消選取 [區域:] 底下的所有專案,但 [重寫] 和 [RequestRouting] 除外。 由於應用程式要求路由依賴 URL 重寫模組來檢查連入要求,因此建議您啟用應用程式要求路由 (RequestRouting) 和 URL 重寫模組 (Rewrite) 的追蹤。
如需 URL 重寫模組追蹤的其他資訊,請參閱 使用失敗的要求追蹤來追蹤重寫規則 。 - 選取 [完成]。
如何使用命令行設定失敗的要求追蹤規則
使用系統管理員權限開啟命令提示字元。
瀏覽至
%windir%\system32\inetsrv
。若要在預設網站上啟用失敗的要求追蹤,請執行下列命令:
appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:"true" /commit:apphost
若要如上述 UI 所示設定失敗的要求追蹤規則,請執行下列命令:
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='WWW Server',areas='Rewrite,RequestRouting',verbosity='Verbose']"
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /[path='*'].failureDefinitions.statusCodes:"200-399"
步驟 2:分析失敗的要求追蹤記錄
在此步驟中,您會將要求傳送至應用程式要求路由,並分析失敗的要求追蹤記錄。
檢視失敗的要求追蹤記錄
流覽至寫入失敗要求追蹤記錄的目錄。 根據預設,此位置為
%SystemDrive%\inetpub\Logs\FailedReqLogFiles\
。將目錄變更為符合 預設網站的資料夾。 根據預設,它是 W3SVC1。 如果您不確定,請在 [IIS 管理員] 中選取 [默認網站],然後在 [動作] 窗格中選取 [進階設定...]。 標識子的值表示對應的資料夾。 (例如,標識碼 1 對應至 W3SVC1)。
如果有任何 XML 檔案,請輸入下列命令來移除它們:
del *.xml
將要求傳送至應用程式要求路由。 如果應用程式要求路由正常運作,則會產生 200 回應,其落在步驟 1 中指定的 200 到 399 範圍內。 因此,記錄會寫入上述位置。
列出目錄中的檔案,以確認已寫入新的 XML 檔案。
開啟 XML 檔案。 選取 [ 要求詳細數據]。 選取 [完成要求追蹤],然後選取 [ 全部展開]。 下圖是應用程式要求路由的失敗要求追蹤記錄範例:
請進一步注意下列各節:
GENERAL_REQUEST_HEADERS:
- 標頭:顯示應用程式要求路由收到的 HTTP 標頭。
ARR_REQUEST_ROUTED:
- WebFarm:指出路由要求的伺服器群組名稱。
- 伺服器:指出路由要求所在的目的地伺服器。
- 演算法:指出使用哪一種負載平衡演算法。
- RoutingReason:指出選取伺服器的原因背後的決策。
ARR_SERVER_STATS:
- 狀態:目的地伺服器的可用性。
- TotalRequests:運行時間統計數據,說明已傳送至此伺服器的要求數目。
- CurrentRequests:此伺服器的並行 HTTP 要求數目的運行時間統計數據。
- BytesSent:運行時間統計數據,說明 KB 中的數據已傳送至此伺服器。
- BytesReceived:從此伺服器接收多少 KB 數據的運行時間統計數據。
- ResponseTime:此伺服器 ms 回應性上的運行時間統計數據。
GENERAL_RESPONSE_HEADERS
- 標頭:顯示來自目的地伺服器的回應 HTTP 標頭。
GENERAL_RESPONSE_ENTITY_BUFFER
- 緩衝區:顯示來自目的地伺服器的響應實體。
已新增下列時間戳,以指出對應事件的開始和結束時間,以分析應用程式要求路由的效能:
- ARR_REQUEST_HEADERS_START
- ARR_REQUEST_HEADERS_END
- ARR_RESPONSE_HEADERS_START
- ARR_RESPONSE_HEADERS_END
- ARR_RESPONSE_ENTITY_START
- ARR_RESPONSE_ENTITY_END
- ARR_RESPONSE_ENTITY_START
- ARR_RESPONSE_ENTITY_END
如果您要在伺服器核心收集失敗的要求追蹤記錄,請將具有 freb.xsl 樣式表單的記錄複製到瀏覽器可供使用的電腦。
摘要
您現在已成功設定應用程式要求路由的失敗要求追蹤規則。 失敗的要求追蹤規則可用來對應用程式要求路由進行疑難解答和偵錯,以及瞭解路由決策,包括負載平衡演算法,在選取指定要求的目的地伺服器時所做的決策。