共用方式為


HTTP 追蹤 < HTTPTracing>

概觀

元素 <httpTracing> 可讓您設定傳入 IIS 要求的選擇性要求型事件追蹤。 <httpTracing><traceUrls>包含專案,其中包含專案的 <add> 集合。 每個 <add> 元素都會定義唯一的 URL 以啟用追蹤。

注意

Windows (ETW 事件追蹤) 是作業系統提供的一般用途高速追蹤設施。 ETW 會使用核心中實作的緩衝和記錄機制,為使用者模式應用程式和核心模式設備磁碟機所引發的事件提供追蹤機制。 此外,ETW 可讓您動態啟用和停用記錄,讓您輕鬆地在生產環境中執行詳細的追蹤,而不需要重新開機或應用程式重新開機。 記錄機制會使用非同步寫入器執行緒寫入磁片的每個處理器緩衝區。 這可讓大規模的伺服器應用程式以最少的干擾來撰寫事件。

注意

若要啟用 IIS 要求型 ETW,請安裝 TracingModule

根據預設,IIS 會透過提供者 IIS 發出 所有 URL 的要求型 ETW 事件:具有 GUID {3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83} 的 WWW 服務器, (專案) 中找到 <traceProviderDefinitions> 詳細資訊。 若要啟用 元素下 <httpTracing> 集合所 <traceUrls> 指定的 ETW URL 篩選,在執行 ETW 會話時,追蹤標的第一個 (最小) 位必須設定為 1。 例如,若要僅針對集合中 <traceUrls> 設定的 URL 啟用 IIS 要求型 ETW 事件,請將追蹤旗標設定為 0xFFFFFFFF 提供者 IIS:WWW Server的 ETW 會話。 這類追蹤旗標會啟用 URL 篩選以及所有 追蹤區域。 若要啟用所有 URL 的相同事件,請改為將追蹤旗標設定為 0xFFFFFFE

注意

元素下 <httpTracing> 集合中 <traceUrls> 定義的 URL 篩選只會影響 IIS 要求型 ETW,且不會影響失敗的要求追蹤。

相容性

版本 備註
IIS 10.0 <httpTracing> IIS 10.0 中未修改專案。
IIS 8.5 <httpTracing> 在 IIS 8.5 中修改專案。
IIS 8.0 在 IIS 8.0 中未修改專案 <httpTracing>
IIS 7.5 <httpTracing> 在 IIS 7.5 中修改專案。
IIS 7.0 專案 <httpTracing> 是在 IIS 7.0 中引進的。
IIS 6.0 N/A

安裝程式

專案 <httpTracing> 包含在 IIS 7 的預設安裝中。

作法

IIS 7 的專案沒有使用者介面 <httpTracing> 。 For examples of how to access the <httpTracing> element programmatically, see the Code Samples section of this document.

組態

您可以在 <httpTracing> ApplicationHost.config檔案的伺服器層級,或在Web.config檔案的月臺、應用程式或目錄層級設定專案。

屬性

無。

子元素

元素 描述
traceUrls 選擇性項目。

指定您想要啟用要求型 ETW 追蹤的 URL。

組態範例

下列範例會在預設網站根目錄的 Web.config 檔案中,啟用 IIS 7 隨附的範例首頁追蹤。

<configuration>
   <system.webServer>
      <httpTracing>
         <traceUrls>
            <add value="/iisstart.htm" />
         </traceUrls>
      </httpTracing>
   </system.webServer>
</configuration>

範例程式碼

下列範例會藉由將專案新增至該網站的集合,在名為 Contoso 的網站上啟用 IIS 7 隨附之範例首頁的 <traceUrls> 追蹤。

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/httpTracing /+"traceUrls.[value='/iisstart.htm']" /commit:apphost

注意

當您使用AppCmd.exe設定這些設定時,請務必將 認可 參數 apphost 設定為 。 這會將組態設定認可至ApplicationHost.config檔案中適當的位置區段。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection httpTracingSection = config.GetSection("system.webServer/httpTracing", "Contoso");
         ConfigurationElementCollection traceUrlsCollection = httpTracingSection.GetCollection("traceUrls");

         ConfigurationElement addElement = traceUrlsCollection.CreateElement("add");
         addElement["value"] = @"/iisstart.htm";
         traceUrlsCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim httpTracingSection As ConfigurationSection = config.GetSection("system.webServer/httpTracing", "Contoso")

      Dim traceUrlsCollection As ConfigurationElementCollection = httpTracingSection.GetCollection("traceUrls")
      Dim addElement As ConfigurationElement = traceUrlsCollection.CreateElement("add")
      addElement("value") = "/iisstart.htm"
      traceUrlsCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpTracingSection = adminManager.GetAdminSection("system.webServer/httpTracing", "MACHINE/WEBROOT/APPHOST/Contoso");

var traceUrlsCollection = httpTracingSection.ChildElements.Item("traceUrls").Collection;
var addElement = traceUrlsCollection.CreateNewElement("add");
addElement.Properties.Item("value").Value = "/iisstart.htm";
traceUrlsCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpTracingSection = adminManager.GetAdminSection("system.webServer/httpTracing", "MACHINE/WEBROOT/APPHOST/Contoso")

Set traceUrlsCollection = httpTracingSection.ChildElements.Item("traceUrls").Collection
Set addElement = traceUrlsCollection.CreateNewElement("add")
addElement.Properties.Item("value").Value = "/iisstart.htm"
traceUrlsCollection.AddElement addElement

adminManager.CommitChanges()