共用方式為


在 IIS 8.5 中使用追蹤對失敗的要求進行疑難解答

適用於:網際網路資訊服務 8.5

簡介

要求型追蹤可在獨立 IIS 伺服器和 Microsoft Azure 網站 (WAWS) 上使用。 如果您可以重現您遇到的問題,以要求為基礎的追蹤會提供一種方式來判斷您的要求究竟發生的情況,以及其發生原因。 某些要求效能不佳、其他要求上的驗證相關失敗,或是 ASP 或 ASP.NET 的伺服器 500 錯誤等問題,通常很難進行疑難解答,除非您在發生問題時擷取問題追蹤。 本文討論 IIS 伺服器上的失敗要求追蹤。 如需使用 Microsoft Azure 網站執行這項操作的詳細資訊,請參閱使用 Visual Studio 對 Azure App 服務 中的應用程式進行疑難解答。

失敗的要求追蹤是設計來緩衝要求的追蹤事件,而且只有在要求失敗時才會將它們排清到磁碟,您可以在其中提供失敗的定義。 如果您想要知道要求傳回特定 HTTP 狀態代碼的原因,例如 401 或 404,或要求需要一段時間來處理或未回應,則可以使用失敗的要求追蹤。

本文所說明的工作包括:

  • 啟用失敗的要求追蹤模組。
  • 設定失敗的要求追蹤記錄檔語意。
  • 定義要保留失敗要求追蹤的 URL,包括要追蹤的失敗定義和區域。
  • 產生失敗狀況並檢視產生的追蹤。

必要條件

安裝 IIS

請先安裝 IIS 8.5,才能執行本文所述的工作。 流覽至http://localhost/並確認顯示 網際網路資訊服務 啟動顯示畫面。 如果未安裝 IIS,請參閱 在 Windows Server 2012 R2 上安裝 IIS 8.5 以取得安裝指示。 安裝 IIS 時,請確定您也安裝下列功能:

  • ASP.NET 3.5 (在網頁伺服器 (IIS)/網頁伺服器/應用程式開發功能/ ASP.NET 3.5)
  • ASP.NET 4.5 (在網頁伺服器 (IIS)/網頁伺服器/應用程式開發功能/ ASP.NET 4.5)
  • 追蹤 (在網頁伺服器 (IIS)/Web 伺服器/健康情況和診斷 - 追蹤)

以系統管理員身分登入

請確定您用來登入的帳戶是系統管理員帳戶,或是在系統管理員群組中。

注意

在系統管理員群組中,預設不會授與您完整的系統管理員用戶權力。 您必須以系統管理員身分執行應用程式,方法是以滑鼠右鍵按鍵圖示,然後選取 [ 以系統管理員身分執行]。

建立備份

在執行下列工作之前,先備份組態檔:

  1. 同時選取 Windows 標誌鍵和 X 鍵,選取 [命令提示字元][系統管理員],然後選取 [ ]。

    Windows 工作列中命令提示字元系統管理員的螢幕快照。

  2. 在命令提示字元中,執行下列命令:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

    此命令會建立 cleanInstall 資料夾,其中包含 %windir%\system32\inetsrv\backup 中的備份組態檔。

建立範例內容

  1. 流覽至 %systemdrive%\inetpub\wwwroot

  2. 將內容移至安全的位置(如果您想要還原現有的內容),或刪除它。

  3. 建立空白檔案,並將它 命名為test.asp

  4. 在命令提示字元中,流覽至 \inetpub\wwwroot 中的test.asp檔案。

  5. 在test.asp檔案中,貼上下列內容:

    <h2>Failed Request Tracing Lab</h2><br>
    <br>Today's date is <% response.write(Date()) %>
    

停用 ASP

必須停用此工作的 ASP。 ASP 只會停用為範例,並針對本文中的工作目的。

若要停用 ASP,請遵循下列步驟:

  1. 開啟 [IIS 管理員],然後選取伺服器。

  2. 按兩下 ISAPI 和 CGI 限制

    [I S 管理員] 窗格的螢幕快照,其中顯示已選取 [I S A P I] 和 [C G I 限制]。

  3. 在 [ ISAPI 和 CGI 限制] 窗格中,選取 [ 使用中伺服器頁面]。 在 [ 動作] 窗格中,選取 [ 拒絕 ] 以停用 ASP。 [使用中伺服器頁面] 會顯示為 [不允許]。

    [I S A P I] 和 [C G I 限制] 窗格的螢幕快照,其中已選取 [使用中伺服器頁面]。[動作] 窗格中已選取 [拒絕] 選項。

啟用失敗的要求追蹤

啟用失敗的要求追蹤之後,您必須設定記錄檔的路徑。 在本節中,您將啟用預設網站的失敗要求追蹤,並指定要儲存記錄檔的位置,然後設定產生失敗記錄的失敗。

步驟 1:啟用月台的失敗要求追蹤並設定記錄檔目錄

  1. 使用系統管理員使用者權力開啟命令提示字元,並流覽至 %systemdrive%\windows\system32\inetsrv

  2. 執行 inetmgr 以開啟 IIS 管理員。

  3. 在 [ 連線] 窗格中,展開計算機名稱、[ 月臺],然後選取 [ 默認網站]。

  4. 在 [動作] 窗格的 [設定] 底下,選取 [失敗的要求追蹤...]。

    [動作] 窗格的螢幕快照,其中顯示 [失敗的要求追蹤] 選項已醒目提示在 [設定] 索引標籤底下。

  5. 在 [ 編輯網站失敗的要求追蹤設定 ] 對話框中,設定下列專案:

    • 選取 [ 啟用] 複選框。
    • 保留其他設定的預設值。

    顯示 [編輯網站失敗要求追蹤設定] 對話框的螢幕快照,其中已選取 [目錄] 欄位和 [啟用] 複選框。

  6. 選取 [確定]。

    默認網站現在已啟用失敗的要求追蹤記錄。 檢查 %windir%\system32\inetsrv\config\applicationHost.config 檔案,以確認組態看起來如下所示:

    <system.applicationHost>
       <!-- other system configuration --> 
       <sites> 
          <site name="Default Web Site" id="1"> 
             <!-- other site configuration --> 
             <traceFailedRequestsLogging  enabled="true" /> 
          </site> 
          <!-- site & app defaults --> 
          <!-- other sites configuration --> 
       </sites> 
       <!-- other system configuration --> 
    </system.applicationHost>
    

步驟 2:設定您的失敗定義

在此步驟中,設定 URL 的失敗定義,包括要追蹤的區域。 針對尚未啟用之擴充功能的任何要求,IIS 會針對 IIS 所傳回的 404.2 狀態代碼進行疑難解答。 它可協助您判斷您需要啟用的特定擴充功能。 如需詳細資訊,請參閱 IIS 中的 HTTP 狀態代碼。

  1. 使用系統管理員使用者權力開啟命令提示字元,並流覽至 %systemdrive%\windows\system32\inetsrv

  2. 執行 inetmgr 以開啟 IIS 管理員。

  3. 在 [ 連線] 窗格中,展開計算機名稱、[ 月臺],然後選取 [ 默認網站]。

  4. 按兩下 [失敗的要求追蹤規則]。

    [默認網站首頁] 窗格的螢幕快照,其中顯示已選取 [失敗的要求追蹤規則] 功能。

  5. 在 [ 動作] 窗格中,選取 [ 新增...]。

  6. 在 [新增失敗的要求追蹤規則精靈] 的 [指定內容至追蹤] 頁面上,選取 [所有內容 ] \ ,然後選取 [下一步]。

    顯示 [新增失敗要求追蹤規則精靈] 的螢幕快照。[指定內容至追蹤] 頁面上已選取 [所有內容] 選項。

  7. 在 [ 定義追蹤條件 ] 頁面上,選取 [ 狀態代碼] 複選框,然後輸入 404.2 作為要追蹤的狀態代碼。

    [新增失敗要求追蹤規則] 的螢幕快照,其中顯示 [定義追蹤條件] 頁面和輸入為狀態代碼的 404 點 2。

  8. 選取 [下一步]。

  9. 在 [選取追蹤提供者] 頁面的 [提供者] 底下,選取 [WWW 伺服器] 複選框,並清除所有其他複選框。 在 [區域] 下,選取 [ 安全性] 複選框,並清除所有其他複選框。

    您產生的問題會導致擲回安全性錯誤追蹤事件。 一般而言,您可以使用 WWW 伺服器 - 安全性區域組態來診斷驗證和授權(包括 ISAPI 限制清單問題)問題。 不過,由於 FREB.xsl 樣式表單有助於反白顯示錯誤和警告,因此您仍然可以使用預設組態來記錄所有區域和提供者中的所有事件。

  10. 在 [詳細資訊],選取 [詳細資訊]。

    注意

    當您安裝追蹤角色服務時,IIS 預設會安裝 WWW 伺服器、ASP 和 ISAPI 擴充功能追蹤提供者。 如果您安裝 ASP.NET 2.0 或更新版本,IIS 會自動新增 ASPNET 追蹤提供者。 應用程式要求路由 (ARR) 安裝程式套件會安裝其他提供者,其也會安裝 URL 重寫模組、Web 伺服器數位管理和外部快取。 您可以使用 元素內的 <traceProviderDefinitions> 元素來新增更多追蹤提供者<add>

    [新增失敗要求追蹤規則精靈] 的螢幕快照,其中顯示從 [提供者] 列表中選取的 WWW 伺服器,以及 [區域] 功能選取的安全性。

  11. 選取 [完成]

  12. 您會看到預設網站的下列定義

    [失敗要求追蹤規則] 頁面的螢幕快照,其中顯示已輸入為相關聯提供者的 WWW 伺服器,並以狀態代碼輸入 404 點 2。

    IIS 管理員會使用 <location> 標記將組態%systemdrive%\inetpub\wwwroot\web.config寫入檔案。 組態應該重述下列內容:

    <configuration> 
        <system.webServer> 
            <tracing> 
                <traceFailedRequests> 
                    <add path="*"> 
                        <traceAreas> 
                            <add provider="WWW Server" areas="Security" verbosity="Verbose" /> 
                        </traceAreas> 
                        <failureDefinitions statusCodes="404.2" /> 
                    </add> 
                </traceFailedRequests> 
            </tracing> 
        </system.webServer> 
    </configuration>
    

測試並檢視失敗要求記錄檔

本節可協助您產生失敗的要求,並檢視產生的追蹤記錄。 您已設定 IIS 來擷 http://localhost/*.asp 取失敗要求追蹤記錄,其 HTTP 回應碼為 404.2。 現在確認其運作正常。

步驟 1:產生錯誤和失敗要求記錄檔

  1. 開啟新的 Internet Explorer 視窗。

  2. 輸入 , http://localhost/test.asp 然後按 ENTER。 顯示「HTTP 錯誤 404.2 - 找不到」錯誤訊息。

    Internet Explorer 視窗的螢幕快照,其中顯示 H T T P 錯誤 404 點 2 虛線找不到訊息頁面。

步驟 2:檢視失敗要求記錄檔

  1. 既然您已產生失敗的要求,請開啟 Windows 檔案總管並流覽至 %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1

    失敗的 Req 記錄檔目錄中 W 3 S V C 1 資料夾的螢幕快照。

    注意

    當 IIS 寫入失敗的要求記錄檔時,它會為每個失敗的要求寫入一個檔案。 freb.xsl 樣式表單也會寫入每個目錄一個。 這可協助您檢視產生的失敗要求記錄檔(例如 此範例中的fr000001.xml )。

  2. 以滑鼠右鍵按兩下 404.2 錯誤的記錄檔,然後選取 [以 ->Internet Explorer 開啟]。 如果這是您第一次開啟失敗的要求追蹤檔案,您必須將about:internet新增至信任的網站清單,因為Internet Explorer的增強式安全性設定預設為啟用。 如果是,您會看到下列內容:

    Internet Explorer 對話框的螢幕快照,其中已選取 [繼續在封鎖網站內容時提示] 選項。

  3. 在 [Internet Explorer] 對話框中,執行下列步驟,將 about:internet 新增至信任的網站清單:

    1. 選取 [ 工具] 功能表,然後選取 [ 因特網選項]。
    2. 選取安全性索引標籤。
    3. 選取 [信任的區域],然後選取 [ 網站]。
    4. 這可讓 XSL 運作。
  4. 在將about:internet 新增至信任的網站清單之後,您會看到 [要求摘要] 頁面:

    [要求摘要] 頁面的螢幕快照,其中 [錯誤和警告] 數據表顯示嚴重性、事件和模組名稱的數據行。

    失敗要求的摘要會記錄在頂端,而 Errors & Warnings 數據表會識別任何為 WARNINGERRORCRITICAL ERROR 嚴重性的事件。 在此範例中 WARNING ,嚴重性層級是由於 ISAPI RESTRICTION 所造成。 您嘗試載入的映像是 %windir%\system32\inetsrv\asp.dll

  5. 使用文字編輯器直接開啟原始 XML 檔案,並查看事件的內容。

摘要

您已完成兩項工作:設定失敗的要求追蹤,以擷取 IIS 傳回的任何要求追蹤,並具有 404.2 狀態代碼,並確認 IIS 已擷取您要求的追蹤。 您也確認 freb.xml 記錄檔未包含任何要求,但具有 404.2 傳回碼的要求除外。 當您查閱失敗記錄檔時,您判斷失敗的原因是該要求的擴展名已停用。 您可以嘗試其他非 HTML 頁面(例如.gif或.jpg檔案),並注意記錄檔不會新增這些追蹤。 您也可以藉由在 failureDefinitions 中設定 timeTaken 欄位,輕鬆地將此事件變更為 404,或擷取失敗。

還原備份

既然您已經完成本文中的工作,您可以還原組態的備份。 使用系統管理員使用者權力執行下列命令:

%windir%\system32\inetsrv\appcmd restore backup cleanInstall