Suivi HTTP <httpTracing>
Vue d’ensemble
L’élément <httpTracing>
vous permet de configurer le suivi d’événements sélectif basé sur les requêtes pour les requêtes IIS entrantes.
<httpTracing>
contient un élément <traceUrls>
, qui contient une collection d’éléments <add>
.
Chaque élément <add>
définit une URL unique pour activer le suivi.
Remarque
Le suivi d’événements pour Windows (ETW) est une installation de suivi à haut débit à usage général fournie par le système d’exploitation. Grâce à un mécanisme de mise en mémoire tampon et de journalisation implémenté dans le noyau, ETW fournit un mécanisme de traçage pour les événements générés par les applications en mode utilisateur et les pilotes de périphériques en mode noyau. En outre, ETW vous permet d’activer et de désactiver la journalisation de manière dynamique, ce qui facilite la réalisation de traçages détaillés dans les environnements de production sans nécessiter de redémarrage ou d’arrêt de l’application. Le mécanisme de journalisation utilise des tampons par processeur qui sont écrits sur le disque par un thread d’écriture asynchrone. Cette option permet aux applications serveur à grande échelle d’écrire des événements avec un minimum de perturbations.
Remarque
Pour activer IIS ETW basé sur les requêtes, installez le TracingModule.
Par défaut, IIS émet des événements ETW basés sur des requêtes pour toutes les URL via le fournisseur IIS : WWW Server avec GUID {3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83} (les informations détaillées sont disponibles dans l’élément <traceProviderDefinitions>
).
Pour activer le filtre d’URL pour ETW spécifié par la collection <traceUrls>
sous l’élément <httpTracing>
, le premier bit (le moins significatif) des indicateurs de trace doit être défini sur 1 lors de l’exécution d’une session ETW.
Par exemple, pour activer les événements ETW basés sur des requêtes IIS UNIQUEMENT pour les URL configurées dans la collection <traceUrls>
, définissez les indicateurs de trace sur 0xFFFFFFFF pour une session ETW avec le fournisseur IIS : WWW Server.
Ces indicateurs de trace activent le filtre d’URL ainsi que toutes les zones de trace.
Pour activer les mêmes événements pour toutes les URL, définissez plutôt les indicateurs de trace sur 0xFFFFFFE.
Remarque
Le filtre d’URL défini dans la collection <traceUrls>
sous l’élément <httpTracing>
affecte uniquement l’ETW basé sur les requêtes IIS et n’a aucun impact sur le suivi des demandes ayant échoué.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <httpTracing> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <httpTracing> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <httpTracing> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <httpTracing> n’a pas été modifié dans IIS 7.5. |
IIS 7.0 | L’élément <httpTracing> a été introduit dans IIS 7.0. |
IIS 6.0 | S/O |
Programme d’installation
L’élément <httpTracing>
est inclus dans l’installation par défaut IIS 7.
Procédure
Il n’existe aucune interface utilisateur pour l’élément <httpTracing>
pour IIS 7. Pour obtenir des exemples sur la façon d’accéder à l’élément <httpTracing>
programmatiquement, consultez la section Exemples de code de ce document.
Configuration
Vous pouvez configurer l’élément <httpTracing>
au niveau du serveur dans le fichier ApplicationHost.config ou au niveau du site, de l’application ou du répertoire dans un fichier Web.config.
Attributs
Aucune.
Éléments enfants
Élément | Description |
---|---|
traceUrls |
Élément facultatif. Spécifie l’URL pour laquelle vous souhaitez activer le suivi ETW basé sur les requêtes. |
Exemple Configuration
L’exemple suivant permet d’activer le traçage pour l’exemple de page d’accueil fourni avec IIS 7 lorsqu’il est placé dans un fichier Web.config à la racine du site web par défaut.
<configuration>
<system.webServer>
<httpTracing>
<traceUrls>
<add value="/iisstart.htm" />
</traceUrls>
</httpTracing>
</system.webServer>
</configuration>
Exemple de code
Les exemples suivants permettent d’activer le suivi pour l’exemple de page d’accueil fourni avec IIS 7 sur le site web nommé Contoso en ajoutant une entrée à la collection <traceUrls>
pour ce site.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/httpTracing /+"traceUrls.[value='/iisstart.htm']" /commit:apphost
Remarque
Vous devez veiller à définir le paramètre commit sur apphost
quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier 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()