Compartir a través de


Seguimiento HTTP <httpTracing>

Información general

El elemento <httpTracing> permite configurar el seguimiento selectivo de eventos basado en solicitudes para las solicitudes IIS entrantes. <httpTracing> contiene un elemento <traceUrls>, que contiene una colección de elementos <add>. Cada elemento <add> define una dirección URL única para permitir el seguimiento.

Nota:

El Seguimiento de eventos para Windows (ETW) es una utilidad de seguimiento de alta velocidad y de uso general proporcionada por el sistema operativo. Gracias al mecanismo de almacenamiento en búfer y registro implementado en el kernel, ETW proporciona un mecanismo de seguimiento para los eventos generados por aplicaciones en modo usuario y controladores de dispositivos en modo kernel. Además, ETW le ofrece la posibilidad de habilitar y deshabilitar el registro dinámicamente, lo que facilita el seguimiento detallado en entornos de producción sin necesidad de arrancar el sistema o reiniciar las aplicaciones. El mecanismo de registro usa búferes por procesador que un subproceso de escritura asincrónico escribe en el disco. Esto permite que las aplicaciones de servidor a gran escala escriban eventos con una alteración mínima.

Nota:

Para habilitar ETW basado en solicitudes de IIS, instale TracingModule.

De forma predeterminada, IIS emite eventos ETW basados en solicitudes para todas las direcciones URL mediante el proveedor IIS: WWW Server con el GUID {3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83} (la información detallada se puede encontrar en el elemento <traceProviderDefinitions>). Para habilitar el filtro de direcciones URL para ETW especificado por la colección <traceUrls> en el elemento <httpTracing>, el primer bit (menos significativo) de las marcas de seguimiento debe establecerse como 1 al ejecutar una sesión ETW. Por ejemplo, para habilitar eventos ETW basados en solicitudes de IIS solo para las direcciones URL configuradas en la colección <traceUrls>, establezca las marcas de seguimiento en 0xFFFFFFFF para una sesión ETW con el proveedor IIS: WWW Server. Estas marcas de seguimiento habilitan el filtro de direcciones URL, así como todas las áreas de seguimiento. Para habilitar los mismos eventos para todas las direcciones URL, establezca en su lugar las marcas de seguimiento en 0xFFFFFFE.

Nota:

El filtro de direcciones URL definido en la colección <traceUrls> bajo el elemento <httpTracing> solo afecta a ETW basado en solicitudes de IIS y no tiene ningún impacto en el seguimiento de solicitudes con error.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <httpTracing> no se modificó en IIS 10.0.
IIS 8.5 El elemento <httpTracing> no se modificó en IIS 8.5.
IIS 8.0 El elemento <httpTracing> no se modificó en IIS 8.0.
IIS 7.5 El elemento <httpTracing> no se modificó en IIS 7.5.
IIS 7.0 El elemento <httpTracing> se introdujo en IIS 7.0.
IIS 6,0 N/D

Configuración

El elemento <httpTracing> se incluye en la instalación predeterminada de IIS 7.

Procedimientos

No hay ninguna interfaz de usuario para el elemento <httpTracing> para IIS 7. Para obtener ejemplos de cómo acceder al elemento <httpTracing> mediante programación, consulte la sección Ejemplos de código de este documento.

Configuración

Puede configurar el elemento <httpTracing> a nivel de servidor en el archivo ApplicationHost.config, o bien a nivel de sitio, aplicación o directorio en un archivo Web.config.

Atributos

Ninguno.

Elementos secundarios

Elemento Descripción
traceUrls Elemento opcional.

Especifica la dirección URL para la que desea habilitar el seguimiento ETW basado en solicitudes.

Ejemplo de configuración

En el ejemplo siguiente se habilitará el seguimiento de la página principal de ejemplo que se incluye con IIS 7 cuando se coloca en un archivo Web.config en la raíz del sitio web predeterminado.

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

Código de ejemplo

En los ejemplos siguientes se habilita el seguimiento de la página principal de ejemplo que se incluye con IIS 7 en el sitio web denominado Contoso agregando una entrada a la colección <traceUrls> para ese sitio.

AppCmd.exe

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

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()