Freigeben über


HTTP-Ablaufverfolgung <httpTracing>

Übersicht

Mit dem <httpTracing>-Element können Sie die selektive anforderungsbasierte Ereignisablaufverfolgung für eingehende IIS-Anforderungen konfigurieren. <httpTracing> enthält ein <traceUrls>-Element, das eine Sammlung von <add>-Elementen enthält. Jedes <add>-Element definiert eine eindeutige URL zum Aktivieren der Ablaufverfolgung.

Hinweis

Die Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW) ist eine universelle und schnelle Ablaufverfolgungsfunktion, die vom Betriebssystem bereitgestellt wird. Mithilfe eines im Kernel implementierten Pufferungs- und Protokollierungsmechanismus bietet die Ereignisablaufverfolgung für Windows einen Ablaufverfolgungsmechanismus für Ereignisse, die sowohl von Benutzermodusanwendungen als auch von Kernelmodus-Gerätetreibern ausgelöst werden. Darüber hinaus gibt Ihnen die Ereignisablaufverfolgung für Windows die Möglichkeit, die Protokollierung dynamisch zu aktivieren und zu deaktivieren, was eine problemlose detaillierte Ablaufverfolgung in Produktionsumgebungen ganz ohne System- oder Anwendungsneustarts ermöglicht. Der Protokollierungsmechanismus verwendet prozessorspezifische Puffer, die durch einen asynchronen Schreibthread auf den Datenträger geschrieben werden. Dadurch können große Serveranwendungen Ereignisse mit minimalen Störungen schreiben.

Hinweis

Wenn Sie die anforderungsbasierte Ereignisablaufverfolgung für Windows von IIS aktivieren möchten, installieren Sie TracingModule.

Standardmäßig sendet IIS anforderungsbasierte ETW-Ereignisse für alle URLs über den Anbieter IIS: WWW-Server mit der GUID {3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}. (Die ausführlichen Informationen stehen im <traceProviderDefinitions>-Element zur Verfügung.) Um den URL-Filter für die Ereignisablaufverfolgung für Windows zu aktivieren, der durch die <traceUrls>-Sammlung unter dem <httpTracing>-Element angegeben wird, muss das erste Bit (also das Bit mit dem niedrigsten Stellenwert) der Ablaufverfolgungsflags auf „1“ festgelegt werden, wenn eine ETW-Sitzung ausgeführt wird. Wenn Sie also beispielsweise anforderungsbasierte ETW-Ereignisse von IIS NUR für die URLs aktivieren möchten, die in der <traceUrls>-Sammlung konfiguriert sind, legen Sie die Ablaufverfolgungsflags für eine ETW-Sitzung mit dem Anbieter IIS: WWW-Server auf 0xFFFFFFFF fest. Solche Ablaufverfolgungsflags aktivieren den URL-Filter sowie alle Ablaufverfolgungsbereiche. Wenn Sie die gleichen Ereignisse für alle URLs aktivieren möchten, können Sie die Ablaufverfolgungsflags stattdessen auf 0xFFFFFFE festlegen.

Hinweis

Der in der <traceUrls>-Sammlung unter dem <httpTracing>-Element definierte URL-Filter wirkt sich nur auf die anforderungsbasierte Ereignisablaufverfolgung für Windows von IIS aus. Sie hat keine Auswirkungen auf die Ablaufverfolgung für nicht erfolgreiche Anforderungen.

Kompatibilität

Version Hinweise
IIS 10.0 Das <httpTracing>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <httpTracing>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <httpTracing>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <httpTracing>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <httpTracing>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 N/V

Setup

Das <httpTracing>-Element ist in der Standardinstallation von IIS 7 enthalten.

Gewusst wie

Für IIS 7 steht keine Benutzeroberfläche für das <httpTracing>-Element zur Verfügung. Beispiele für den programmgesteuerten Zugriff auf das <httpTracing>-Element finden Sie im Abschnitt Codebeispiele dieses Dokuments.

Konfiguration

Das <httpTracing>-Element kann auf der Serverebene in der Datei „ApplicationHost.config“ oder auf der Site-, Anwendungs- oder Verzeichnisebene in einer Datei vom Typ „Web.config“ konfiguriert werden.

Attribute

Keine

Untergeordnete Elemente

Element Beschreibung
traceUrls Optionales Element.

Gibt die URL an, für die Sie die anforderungsbasierte ETW-Ablaufverfolgung aktivieren möchten.

Konfigurationsbeispiel

Wenn das folgende Beispiel in einer Datei vom Typ „Web.config“ im Stammverzeichnis der Standardwebsite platziert wird, wird die Ablaufverfolgung für die exemplarische Startseite aktiviert, die zusammen mit IIS 7 bereitgestellt wird.

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

Beispielcode

In den folgenden Beispielen wird die Ablaufverfolgung für die exemplarische Startseite, die zusammen mit IIS 7 bereitgestellt wird, auf einer Website mit dem Namen „Contoso“ aktiviert, indem ein Eintrag zur <traceUrls>-Sammlung für diese Site hinzugefügt wird.

AppCmd.exe

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

Hinweis

Legen Sie den commit-Parameter auf apphost fest, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei „ApplicationHost.config“ festgelegt.

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()