Partager via


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