Compartir a través de


Definición de error <failureDefinitions>

Información general

El elemento <failureDefinitions> define las condiciones en las que hacer el seguimiento de solicitudes. Una condición de error consta de códigos de estado, un intervalo de tiempo o una combinación de ambos. Además, puede especificar el nivel de detalle del seguimiento.

Nota:

Agregar opciones de detalle adicionales configurará que IIS devuelva más información en los registros de seguimiento, pero los registros detallados pueden aumentar bastante su tamaño. Si los archivos de registro superan el tamaño máximo de archivo que define el atributo maxLogFileSizeKB del elemento <traceFailedRequestsLogging>, los archivos de registro se truncarán con el tamaño máximo y tendrá que aumentar el tamaño de archivo especificado en ese atributo.

Compatibilidad

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

Configuración

Después de finalizar la instalación predeterminada de IIS 7 y versiones posteriores, debe instalar el servicio de rol de seguimiento para usar el seguimiento de solicitudes con errores. Después de instalar el servicio de rol, todavía debe habilitar el seguimiento de solicitudes con error en el nivel de sitio, el nivel de aplicación o el nivel de directorio.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Mantenimiento y diagnósticos y, a continuación, seleccione Seguimiento. Haga clic en Next.
    Image of Health and Diagnostics pane in Server Roles page expanded with Tracing highlighted..
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, expanda World Wide Web Services, expanda Mantenimiento y diagnóstico y, a continuación, seleccione Seguimiento.
    Image of World Wide Web Services and Health and Diagnostics pane expanded with Tracing selected.: haga clic en Aceptar.
  4. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Seguimiento y haga clic en Siguiente.
    Screenshot of Health and Diagnostics pane in Add Role Services Wizard expanded with Tracing selected.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados , haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, después Servicios World Wide Web y, a continuación Estado y diagnóstico.
  4. Seleccione Seguimiento y después haga clic en Aceptar.
    Screenshot of World Wide Web Services and Health and Diagnostics pane expanded displaying Tracing selected.

Procedimientos

Cómo habilitar el seguimiento

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, seleccione la conexión del servidor, el sitio, la aplicación o el directorio para el que desea configurar Seguimiento de solicitudes con error.

  3. En el panel Acciones, haga clic en Seguimiento de solicitudes con error...
    Image of Default Web Site Home page displaying I I S Manager console.

  4. En el cuadro de diálogo Editar configuración de seguimiento de solicitudes con error de sitio web, marque la casilla Habilitar para habilitar el seguimiento, deje el valor predeterminado o escriba un nuevo directorio en el que desee almacenar los archivos de registro de solicitudes con error en el cuadro Directorio, escriba el número de archivos de seguimiento de solicitudes con error que desea almacenar en el cuadro Número máximo de archivos de seguimiento y, a continuación, haga clic en Aceptar.
    Image of Edit Web Site Failed Request Tracing Settings dialog box with command populating Directory field and Maximum number of trace files displayed.

Cómo configurar definiciones de errores

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, el sitio, la aplicación o el directorio para el que desea configurar Seguimiento de solicitudes con error.

  3. En el panel Inicio, haga doble clic en Reglas de seguimiento de solicitudes con error.
    Screenshot of Home pane displaying I I S Manager console.

  4. En el panel Acciones, haga clic en Agregar....

  5. En la página Especificar contenido en seguimiento del asistente para agregar reglas de seguimiento de solicitudes con error, seleccione el tipo de contenido del que desea realizar el seguimiento y, a continuación, haga clic en Siguiente.
    Screenshot of Specify Content to Trace page showing All Content option selected.

  6. En la página Definir condiciones de seguimiento, seleccione las condiciones de seguimiento y, a continuación, haga clic en Siguiente. Las condiciones de seguimiento pueden incluir cualquier combinación de códigos de estado, un límite de tiempo que una solicitud debe tomar o la gravedad del evento. Si especifica todas las condiciones, la primera condición que se cumple genera el archivo de registro de seguimiento de solicitudes con error.
    Image of Define Trace Conditions in Add Failed Request Tracing Rule Wizard.

  7. En la página Seleccionar proveedores de seguimiento, seleccione uno o varios de los proveedores de seguimiento en Proveedores.
    Image of Select Trace Providers page with A S P and A S P NET selected as providers.

  8. En la página Seleccionar proveedores de seguimiento, seleccione uno o varios de los niveles de detalle en Detalle.
    Screenshot of Select Trace Providers page displaying A S P and A S P NET selected under Verbosity levels.

  9. Si seleccionó el proveedor de seguimiento ASPNET o WWW Server en el paso 8, seleccione una o más áreas funcionales para que el proveedor rastree en Áreas de la página Seleccionar proveedores de rastreo.

  10. Haga clic en Finalizar

Configuración

Atributos

Atributo Descripción
statusCodes Atributo de cadena opcional.

Especifica el código o códigos de estado al que desea realizar el seguimiento. Puede escribir varios códigos de estado en esta lista al separarlos con comas. También puede mejorar los códigos de estado con códigos de subestado, como "404.2, 500" o un intervalo de códigos de subestado como "400-599". Si no especifica códigos de subestado, se realizará un seguimiento de todos los códigos de subestado del código de estado especificado. Los códigos de estado deben estar entre 100 y 999 y los códigos de subestado entre 1 y 999.
timeTaken Atributo timeSpan opcional.

Especifica el tiempo máximo que una solicitud puede dedicar al procesamiento antes de considerarla como errónea y, a continuación, se realice un seguimiento.

El valor predeterminado es 00:00:00.
traceAllAfterTimeout Atributo bool opcional.

true si IIS debe continuar con el seguimiento de toda la solicitud al alcanzar un tiempo de espera. De lo contrario, false si IIS debe truncar el seguimiento cuando ocurrió el tiempo de espera.

El valor predeterminado es false.
verbosity Atributo enum opcional.

Especifica la cantidad mínima y tipo de información que se guarda en el registro de seguimiento. Si el nivel de detalle se establece en Error, se creará un archivo de registro de seguimiento de solicitudes con error de la solicitud al recibir el primer evento de seguimiento cuyo nivel de detalle sea Error o CriticalError.

El atributo verbosity puede tener uno de los siguientes valores posibles.

El valor predeterminado es Ignore.
Valor Descripción
Ignore No proporciona información sobre la actividad de la solicitud.

El valor numérico es 0.
CriticalError Proporciona información sobre las acciones que pueden hacer que un proceso termine o esté a punto de hacer que un proceso termine.

El valor numérico es 1.
Error Proporciona información sobre los componentes que experimentan un error y no pueden seguir procesando solicitudes. Estos errores suelen indicar un problema del lado servidor.

El valor numérico es 2.
Warning Proporciona información sobre los componentes que experimentan un error pero pueden seguir procesando la solicitud.

El valor numérico es 3.

Elementos secundarios

Ninguno.

Ejemplo de configuración

El siguiente ejemplo de configuración configura el seguimiento en el nivel de servidor en el archivo ApplicationHost.config. Establece el seguimiento de todos los archivos .aspx, usa el elemento <traceAreas> para establecer el proveedor de ASPNET y el realiza el seguimiento en todas las áreas de ASP.NET, que son Infrastructure, Module, Page y AppServices. El ejemplo también usa el atributo verbosity para establecer la cantidad de información devuelta al archivo de seguimiento en warning. Por último, el ejemplo usa el elemento <failureDefinitions> para realizar un seguimiento de solo las solicitudes que generan un código de estado HTTP 404.

<tracing>
   <traceFailedRequests>
      <add path="*.aspx">
         <traceAreas>
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Warning" />
         </traceAreas>
         <failureDefinitions statusCodes="404" />
      </add>
   </traceFailedRequests>
</tracing>

Código de ejemplo

Los siguientes ejemplos habilitan el seguimiento detallado de solicitudes con error para errores HTTP 500 en contenido ASP.NET en todas las solicitudes a páginas *.aspx.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx']" 

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx'].traceAreas.[provider='ASPNET',areas='Infrastructure,Module,Page,AppServices',verbosity='Verbose']" 

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /[path='*.aspx'].failureDefinitions.statusCodes:"500"

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.GetWebConfiguration("Contoso");
         ConfigurationSection traceFailedRequestsSection = config.GetSection("system.webServer/tracing/traceFailedRequests");
         ConfigurationElementCollection traceFailedRequestsCollection = traceFailedRequestsSection.GetCollection();

         ConfigurationElement addElement = traceFailedRequestsCollection.CreateElement("add");
         addElement["path"] = @"*.aspx";

         ConfigurationElementCollection traceAreasCollection = addElement.GetCollection("traceAreas");
         ConfigurationElement addElement1 = traceAreasCollection.CreateElement("add");
         addElement1["provider"] = @"ASPNET";
         addElement1["areas"] = @"Infrastructure,Module,Page,AppServices";
         addElement1["verbosity"] = @"Verbose";
         traceAreasCollection.Add(addElement1);

         ConfigurationElement failureDefinitionsElement = addElement.GetChildElement("failureDefinitions");
         failureDefinitionsElement["statusCodes"] = @"500";
         traceFailedRequestsCollection.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.GetWebConfiguration("Contoso")
      Dim traceFailedRequestsSection As ConfigurationSection = config.GetSection("system.webServer/tracing/traceFailedRequests")
      Dim traceFailedRequestsCollection As ConfigurationElementCollection = traceFailedRequestsSection.GetCollection

      Dim addElement As ConfigurationElement = traceFailedRequestsCollection.CreateElement("add")
      addElement("path") = "*.aspx"
      Dim traceAreasCollection As ConfigurationElementCollection = addElement.GetCollection("traceAreas")
      Dim addElement1 As ConfigurationElement = traceAreasCollection.CreateElement("add")
      addElement1("provider") = "ASPNET"
      addElement1("areas") = "Infrastructure,Module,Page,AppServices"
      addElement1("verbosity") = "Verbose"
      traceAreasCollection.Add(addElement1)

      Dim failureDefinitionsElement As ConfigurationElement = addElement.GetChildElement("failureDefinitions")
      failureDefinitionsElement("statusCodes") = "500"
      traceFailedRequestsCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso");
var traceFailedRequestsCollection = traceFailedRequestsSection.Collection;

var addElement = traceFailedRequestsCollection.CreateNewElement("add");
addElement.Properties.Item("path").Value = "*.aspx";
var traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection;

var addElement1 = traceAreasCollection.CreateNewElement("add");
addElement1.Properties.Item("provider").Value = "ASPNET";
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices";
addElement1.Properties.Item("verbosity").Value = "Verbose";
traceAreasCollection.AddElement(addElement1);

var failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions");
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500";
traceFailedRequestsCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso")
Set traceFailedRequestsCollection = traceFailedRequestsSection.Collection

Set addElement = traceFailedRequestsCollection.CreateNewElement("add")
addElement.Properties.Item("path").Value = "*.aspx"
Set traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection

Set addElement1 = traceAreasCollection.CreateNewElement("add")
addElement1.Properties.Item("provider").Value = "ASPNET"
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices"
addElement1.Properties.Item("verbosity").Value = "Verbose"
traceAreasCollection.AddElement addElement1

Set failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions")
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500"
traceFailedRequestsCollection.AddElement addElement

adminManager.CommitChanges()