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