適用於:網際網路資訊服務
網際網路資訊服務 (IIS) 內建的其中一個絕佳疑難解答功能是要求追蹤失敗。 此功能可讓您在伺服器上設定追蹤規則,以針對您定義的自定義失敗狀況建立詳細的疑難解答記錄檔。 例如,您可以建立追蹤規則來建立 HTTP 401 錯誤的記錄檔,以擷取驗證失敗的詳細數據。
IIS 中的失敗要求追蹤可以設定為被動追蹤失敗。 這表示您可以將追蹤規則新增至 IIS,以在發生錯誤時建立記錄檔,即使您未主動監視伺服器也一樣。 例如,本文中的步驟示範如何建立追蹤規則,以在發生 HTTP 500 錯誤時建立追蹤記錄。 這個被動追蹤方法稱為「無重現」追蹤,這表示您可以定期檢查伺服器的記錄,以檢查是否有發生任何失敗,然後只在 IIS 建立記錄時採取動作。
使用使用者 存取控制
若要確定您已使用具有完整系統管理許可權的帳戶,遵循本文中的步驟,請使用下列其中一種方法:
- 使用本機系統管理員帳戶登入您的電腦。
- 如果您使用具有系統管理許可權的帳戶而非本機系統管理員帳戶登入,請使用 [ 以系統管理員 身分執行] 選項開啟所有應用程式和所有命令提示字元會話。
這些條件是必要的,因為 Windows 中的用戶帳戶控制 (UAC) 安全性元件可防止系統管理存取 IIS 組態設定。 如需 UAC 的詳細資訊,請參閱 使用者帳戶控制。
安裝失敗的要求追蹤
IIS 預設不會安裝失敗的要求追蹤。 根據您的 Windows 版本安裝失敗的要求追蹤。
Windows 用戶端作業系統
- 選取 [開始]>[控制台]。
- 在 [控制台] 中,選取 [程式和功能>] [開啟或關閉 Windows 功能]。
- 展開 [網際網路資訊服務> World Wide Web 服務>健康情況和診斷]。
- 選取 [ 追蹤],然後選取 [ 確定]。
Windows Server 操作系統
- 選取 [開始],指向 [系統管理工具],然後選取 [伺服器管理員]。
- 在 [伺服器管理員 階層] 窗格中,展開 [角色],然後選取 [網頁伺服器] [IIS]。
- 在 [Web 伺服器 (IIS)] 窗格中,捲動至 [角色服務] 區段,然後選取 [新增角色服務]。
- 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取 [追蹤],然後選取 [下一步]。
- 在 [ 確認安裝選取專案 ] 頁面上,選取 [ 安裝]。
- 在 [ 結果] 頁面上,選取 [ 關閉]。
如需安裝 IIS 失敗要求追蹤的詳細資訊,請參閱追蹤追蹤><。
如何啟用失敗的要求追蹤
- 選取 [開始],指向 [系統管理工具],然後選取 [網際網路資訊服務 [IIS] 管理員。
- 在 [ 連線] 窗格中,選取您要設定失敗要求追蹤的伺服器連線、月臺、應用程式或目錄。
- 在 [ 動作] 窗格中,選取 [失敗的要求追蹤...
- 在 [編輯網站失敗要求追蹤設定 ] 對話框中設定下列選項:
- 選取 [ 啟用] 複選框以啟用追蹤。
- 保留預設值,或輸入您要在 [目錄] 方塊中儲存失敗要求記錄檔的新目錄。
- 在 [追蹤檔案數目上限] 方塊中 ,輸入您想要儲存的要求追蹤檔案 數目。
- 選取 [確定]。
注意
您可以自定義傳統 ASP、ASP.NET 或其他特定條件的設定,但 HTTP 500 錯誤的一般規則對於探索 Web 伺服器上的各種錯誤狀況很有用。
您也可以使用 具有下列語法的 AppCmd.exe 公用程式,從命令提示字元啟用失敗要求追蹤:
appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].traceFailedRequestsLogging.enabled:"True" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].traceFailedRequestsLogging.directory:"%SystemDrive%\inetpub\logs\FailedReqLogFiles" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].traceFailedRequestsLogging.maxLogFiles:"50" /commit:apphost
針對傳統 ASP 錯誤進行疑難解答
在本節中,我們會使用傳統 ASP 產生一些錯誤,以檢查失敗的要求追蹤如何協助識別潛在的問題。 雖然這些範例以您知道失敗原因的特定情況為目標,但您可以使用呈現的技術來針對失敗原因未知的情況進行疑難解答。
針對 HTTP 500 錯誤進行疑難排解
IIS 會在 ASP 頁面無法執行時傳回 HTTP 500 錯誤,而且沒有 IIS 的失敗要求追蹤功能,這些 HTTP 500 錯誤可能會難以進行疑難解答。 這是因為當您未主動疑難解答系統時,通常會發生 ASP 錯誤,因此有時候您唯一的選項是搜尋 IIS 活動記錄,並希望 ASP 模組傳回失敗要求的記錄專案中的其他資訊。 在下列使用失敗要求追蹤的範例中,您有可用來針對情況進行疑難解答的詳細失敗記錄。
如何新增 HTTP 500 錯誤的追蹤規則
下列步驟會設定 HTTP 500 錯誤的失敗要求追蹤規則,您稍後會用此規則針對傳統 ASP 錯誤訊息進行疑難解答:
- 選取 [開始],指向 [系統管理工具],然後選取 [網際網路資訊服務 [IIS] 管理員。
- 在 [ 連線] 窗格中,移至您要設定失敗要求追蹤的連線、月臺、應用程式或目錄。
- 在 [ 首頁 ] 窗格中,按兩下 [失敗的要求追蹤規則]。
- 在 [ 動作] 窗格中,選取 [ 新增...
- 在 [新增失敗要求追蹤規則精靈] 的 [指定內容至追蹤] 頁面上,您通常會選取您想要追蹤的內容類型。 在此情況下,接受所有內容的預設值,然後選取 [ 下一步]。
- 在 [ 定義追蹤條件 ] 頁面上,於 [狀態代碼] 文本框中輸入 500,以追蹤 HTTP 500 錯誤,然後選取 [下一步]。
- 在 [ 選取追蹤提供者 ] 頁面上,接受預設值,然後選取 [ 完成]。
建立叫用無效 COM 類別的頁面
在本節中,您會檢查嘗試建立無效 COM 類別實例的 ASP 頁面,而這種情況最常由拼錯有效的 COM 類別所產生。 若要測試此問題,請將下列 ASP 程式代碼儲存為網站 wwwroot 資料夾中的 Bad_class.asp,其中您已啟用 HTTP 500 錯誤的失敗要求追蹤:
<html>
<body>
<h1>Bad Class</h1>
<%
Set objObject = CreateObject("Bad.Class.Name")
%>
</body>
</html>
當您使用網頁瀏覽器流覽至此檔案時,IIS 應該會傳回 HTTP 500 錯誤訊息,而 IIS 會建立失敗的要求追蹤記錄檔,該記錄檔會在 %SystemDrive%\Inetpub\FailedRequestLogFiles\W3SVCnnn 資料夾中預設建立,其中 W3SVCnnn 包含 IIS 管理員中所列網站的唯一標識符。 失敗的要求追蹤記錄是 XML 檔案,而 IIS 會建立 XSL 檔案,將 XML 轉換成您可以在 Internet Explorer 中開啟的簡報格式。
讀取 Internet Explorer 中的追蹤記錄檔
當您在Edge瀏覽器中使用Internet Explorer或 IE 模式來開啟失敗的要求追蹤記錄檔時,要求摘要中會顯示各種資訊。 此摘要包含失敗狀況的一般環境資訊,例如執行URL、應用程式集區、驗證類型和用戶名稱,以及其他資訊。 您注意到失敗的原因是狀態代碼,而狀態為 HTTP 500 錯誤。
在摘要的 [ 錯誤和警告] 區段中,您會看到 檢視追蹤 連結,如下圖所示:
當您選取 檢視追蹤 連結時,瀏覽器會跳至發生 ASP 腳本失敗的追蹤區段。 如果您展開個別追蹤事件,您可以檢視事件的特定詳細數據,例如實體檔案路徑、行號、ASP 錯誤碼和描述,以及導致失敗的 ASP 程式代碼摘錄,在此情況下是嘗試具現化無效的 COM 類別。
下圖顯示範例:
針對緩慢頁面進行疑難解答
您可以設定失敗要求追蹤,為超過您指定的時間間隔的頁面產生記錄檔,而不只是針對 HTTP 錯誤。 在實際範例中,如果您的 Web 使用者抱怨網站的某些部分有時看起來很慢,但他們不知道哪些頁面似乎受到影響,您可以建立追蹤規則,以在任何頁面超過該間隔時建立記錄檔。 這可讓您藉由等候 IIS 建立列出頁面的記錄檔,將疑難解答範圍縮小到任何受影響的頁面。 如果沒有失敗的要求追蹤,您可以查詢 IIS 活動記錄,尋找執行時間很長的頁面,但只會將您的範圍縮小到發生問題的頁面清單,而不是問題本身。 在下列範例中,您會在緩慢的頁面中找到失敗的來源。
如何新增慢速內容的追蹤規則
下列步驟會針對超過特定時間週期的要求設定失敗要求追蹤規則,以供稍後用來針對慢速 ASP 頁面進行疑難解答。
- 選取 [開始],指向 [系統管理工具],然後選取 [網際網路資訊服務 [IIS] 管理員。
- 在 [ 連線] 窗格中,移至您要設定失敗要求追蹤的連線、月臺、應用程式或目錄。
- 在 [ 首頁 ] 窗格中,按兩下 [失敗的要求追蹤規則]。
- 反白顯示您在上一個範例中建立的規則,然後在 [動作] 窗格中選取 [移除]。
- 在 [ 動作] 窗格中,選取 [ 新增...
- 在 [新增失敗要求追蹤規則精靈] 的 [指定內容至追蹤] 頁面上,您通常會選取您想要追蹤的內容類型。 在此情況下,接受所有內容的預設值,然後選取 [ 下一步]。
- 在 [ 定義追蹤條件] 頁面上:
- 清除狀態代碼。。
- 選取 [花費的時間](以秒為單位)。
- 輸入 5 以取得秒數。
- 選取 [下一步]。
- 在 [ 選取追蹤提供者 ] 頁面上,接受預設值,然後選取 [ 完成]。
建立無休止地循環的頁面
在此錯誤狀況中,您會檢查會無休止地循環的頁面。 當使用者會話無法正確結束迴圈時,通常會造成此問題,例如,當您的程式代碼在資料庫數據表中循環清單記錄時。 若要測試此問題,請將下列 ASP 程式代碼儲存為已啟用失敗要求追蹤之網站的 wwwroot 資料夾中Slow_page.asp:
<html>
<body>
<h1>Slow Page</h1>
<%
Do
If Response.IsClientConnected = False Then
Exit Do
End If
Loop
%>
</body>
</html>
當您使用網頁瀏覽器流覽至此檔案時,您應該不會在網頁瀏覽器中看到任何錯誤,但瀏覽器可能永遠不會傳回頁面,最後逾時。
注意
當您關閉網頁瀏覽器之後,此頁面會寫入以結束迴圈。 如果您想要在達到腳本逾時之前結束迴圈,您應該在 10 秒後手動關閉瀏覽器。
五秒之後,IIS 會在 SystemDrive%%\Inetpub\FailedRequestLogFiles\W3SVCnnn 資料夾中預設建立失敗的要求追蹤記錄檔,其中 W3SVCnnn 包含網站 IIS 管理員中所列的唯一標識符。
讀取 Internet Explorer 中的追蹤記錄檔
如上一個範例所示,當您在 Microsoft Edge 瀏覽器中使用 Internet Explorer 或 IE 模式來開啟失敗的要求追蹤記錄檔時,重要資訊會顯示在要求摘要中。 此摘要包含失敗狀況的一般環境資訊,例如執行URL、應用程式集區、驗證類型和用戶名稱,以及其他資訊。 請注意,失敗的原因是所花費的時間量,而且時間略超過五秒,也就是您在失敗要求追蹤規則中輸入的時間。
注意
您也注意到回應的 HTTP 狀態代碼是 HTTP 200,這是成功的回應。 這是其中一個因素,通常使得診斷緩慢的頁面-回應成功,這使得它們更容易找到。
在摘要的 [ 錯誤和警告] 區段中,您會看到 檢視追蹤 連結,如下圖所示:
當您選取檢視 追蹤連結時,瀏覽器會移至發生 ASP 腳本失敗的追蹤區段。 如果您展開個別追蹤事件,您可以檢視事件的特定詳細數據,例如實體檔案路徑、行號、ASP 錯誤碼和描述,以及建立記錄檔時執行的 ASP 程式代碼摘錄。 藉由使用這項資訊,您可以檢查 ASP 頁面,並找出在永不結束迴圈內執行的程式代碼行。
下圖顯示範例:
其他相關資訊
如需 IIS 中失敗要求追蹤的詳細資訊,請參閱下列文章: