Partager via


Définitions d’échecs <failureDefinitions>

Vue d’ensemble

L’élément <failureDefinitions> définit les conditions du suivi des demandes. Une condition d’échec se compose de codes d’état, d’un intervalle de temps ou d’une combinaison des deux. En outre, vous pouvez spécifier le niveau de verbosité pour le suivi.

Remarque

L’ajout d’options de verbosité supplémentaires configure IIS pour qu’il retourne davantage d’informations dans vos journaux de traces, au risque que les journaux détaillés deviennent assez volumineux. Si vos fichiers journaux dépassent la taille de fichier maximale définie par l’attribut maxLogFileSizeKB de l’élément <traceFailedRequestsLogging>, les fichiers journaux sont tronqués à la taille maximale. La solution est alors d’augmenter la taille de fichier spécifiée dans cet attribut.

Compatibilité

Version Notes
IIS 10.0 L’attribut traceAllAfterTimeout a été ajouté à l’élément <failureDefinitions> dans IIS 10.0.
IIS 8.5 L’élément <failureDefinitions> n’a fait l’objet d’aucune modification dans IIS 8.5.
IIS 8.0 L’élément <failureDefinitions> n’a fait l’objet d’aucune modification dans IIS 8.0.
IIS 7.5 L’élément <failureDefinitions> n’a fait l’objet d’aucune modification dans IIS 7.5.
IIS 7.0 L’élément <failureDefinitions> a été introduit dans IIS 7.0.
IIS 6.0 S/O

Programme d’installation

Une fois que vous avez terminé l’installation par défaut d’IIS version 7 ou ultérieure, vous devez installer le service de rôle Suivi pour utiliser la fonctionnalité de suivi des demandes ayant échoué. Après avoir installé le service de rôle, vous devez encore activer le suivi des demandes ayant échoué au niveau du site, de l’application ou du répertoire.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans le Gestionnaire de serveur, cliquez sur le menu Gérer, puis cliquez sur Ajouter des rôles et des fonctionnalités.
  3. Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
  4. Dans la page Rôles serveur, développez tour à tour Serveur web (IIS), Serveur web et Intégrité et diagnostics, puis sélectionnez Suivi. Sélectionnez Suivant.
    Image of Health and Diagnostics pane in Server Roles page expanded with Tracing highlighted. .
  5. Dans la page Sélectionner les composants, cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l’écran d’accueil, déplacez le pointeur jusqu’au coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis cliquez sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez tour à tour Internet Information Services, Services World Wide Web et Intégrité et diagnostics, puis sélectionnez Suivi.
    Image of World Wide Web Services and Health and Diagnostics pane expanded with Tracing selected.- Cliquez sur OK.
  4. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet de la hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler le contenu jusqu’à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
  4. Dans la page Sélectionner des services de rôle de l’Assistant Ajout de services de rôle, sélectionnez Suivi, puis cliquez sur Suivant.
    Screenshot of Health and Diagnostics pane in Add Role Services Wizard expanded with Tracing selected.
  5. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis cliquez sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis cliquez sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez tour à tour Internet Information Services, Services World Wide Web et Intégrité et diagnostics.
  4. Sélectionnez Suivi, puis cliquez sur OK.
    Screenshot of World Wide Web Services and Health and Diagnostics pane expanded displaying Tracing selected.

Procédure

Activer le suivi

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis cliquez sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, sélectionnez la connexion du serveur, le site, l’application ou le répertoire pour lequel vous souhaitez configurer le suivi des demandes ayant échoué.

  3. Dans le volet Actions, cliquez sur Suivi des demandes ayant échoué...
    Image of Default Web Site Home page displaying I I S Manager console.

  4. Dans la boîte de dialogue Modifier les paramètres de trace des demandes de site web ayant échoué, cochez la case Activer pour activer le suivi ; dans la zone Répertoire, conservez l’emplacement par défaut ou entrez un autre répertoire où vous souhaitez enregistrer les fichiers journaux des échecs de demandes ; dans le champ Nombre maximal de fichiers de trace, entrez le nombre de fichiers de trace des échecs de demandes pouvant être enregistrés, puis cliquez sur OK.
    Image of Edit Web Site Failed Request Tracing Settings dialog box with command populating Directory field and Maximum number of trace files displayed.

Configurer les définitions d’échecs

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis cliquez sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, accédez à la connexion, au site, à l’application ou au répertoire pour lequel vous souhaitez configurer le suivi des demandes ayant échoué.

  3. Dans le volet Accueil, double-cliquez sur Règles de suivi des demandes ayant échoué.
    Screenshot of Home pane displaying I I S Manager console.

  4. Dans le volet Actions, cliquez sur Ajouter...

  5. Dans la page Indiquer le contenu devant faire l’objet de la trace de l’Assistant Ajout d’une règle de suivi des demandes ayant échoué, sélectionnez le type de contenu à tracer, puis cliquez sur Suivant.
    Screenshot of Specify Content to Trace page showing All Content option selected.

  6. Dans la page Définir les conditions de suivi, sélectionnez les conditions à suivre, puis cliquez sur Suivant. Les conditions de trace peuvent inclure n’importe quelle combinaison de codes d’état, une limite de temps qu’une demande doit prendre ou la gravité de l’événement. Si vous spécifiez toutes les conditions, la première condition remplie génère le fichier journal de trace des demandes ayant échoué.
    Image of Define Trace Conditions in Add Failed Request Tracing Rule Wizard.

  7. Dans la page Sélectionner les fournisseurs de traces, sélectionnez un ou plusieurs fournisseurs de traces sous Fournisseurs.
    Image of Select Trace Providers page with A S P and A S P NET selected as providers.

  8. Dans la page Sélectionner les fournisseurs de traces, sélectionnez un ou plusieurs niveaux de détail sous Verbosité.
    Screenshot of Select Trace Providers page displaying A S P and A S P NET selected under Verbosity levels.

  9. Si vous avez sélectionné le fournisseur de traces ASPNET ou WWW Server à l’étape 8, sélectionnez une ou plusieurs zones fonctionnelles à suivre par le fournisseur sous Zones dans la page Sélectionner les fournisseurs de traces.

  10. Cliquez sur Terminer.

Configuration

Attributs

Attribut Description
statusCodes Attribut de chaîne facultatif.

Spécifie le ou les codes d’état que vous souhaitez tracer. Si vous entrez plusieurs codes d’état dans cette liste, séparez-les par des virgules. Vous pouvez également affiner vos codes d’état en utilisant des codes de sous-état, comme « 404.2, 500 », ou une plage de codes de sous-état, par exemple « 400-599 ». Si vous ne spécifiez pas de codes de sous-état, tous les codes de sous-état associés au code d’état indiqué sont tracés. Les codes d’état doivent être compris entre 100 et 999, et les codes de sous-état entre 1 et 999.
timeTaken Attribut timeSpan facultatif.

Spécifie la durée maximale du traitement d’une demande, après quoi la demande est marquée en échec, puis ajoutée au journal des traces.

La valeur par défaut est 00:00:00.
traceAllAfterTimeout Attribut bool facultatif.

true si IIS doit continuer à suivre l’intégralité de la demande quand un délai d’attente est atteint ; sinon, false si IIS doit tronquer la trace au terme du délai d’attente.

La valeur par défaut est false.
verbosity Attribut enum facultatif.

Spécifie la quantité minimale d’informations et le type d’informations enregistrées dans le journal des traces. Si l’attribut verbosity est défini sur Error, un fichier journal du suivi des échecs de demandes est créé à la réception du premier événement de trace dont la verbosité est Error ou CriticalError.

L’attribut verbosity peut avoir l’une des valeurs suivantes.

La valeur par défaut est Ignore.
Valeur Description
Ignore Ne fournit aucune information sur l’activité des demandes.

La valeur numérique est 0.
CriticalError Fournit des informations sur les actions qui risquent ou sont sur le point d’entraîner la sortie d’un processus.

La valeur numérique est 1.
Error Fournit des informations sur les composants qui rencontrent une erreur et qui ne peuvent pas poursuivre le traitement des demandes. Ces erreurs indiquent généralement un problème côté serveur.

La valeur numérique est 2.
Warning Fournit des informations sur les composants qui rencontrent une erreur, mais qui peuvent poursuivre le traitement des demandes.

La valeur numérique est 3.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration ci-dessous configure le suivi au niveau du serveur dans le fichier ApplicationHost.config. Il définit le suivi pour tous les fichiers .aspx, utilise l’élément <traceAreas> pour définir le fournisseur ASPNET et trace toutes les zones ASP.NET, à savoir Infrastructure, Module, Page et AppServices. De plus, l’exemple utilise l’attribut verbosity pour définir la quantité d’informations retournées dans le fichier de suivi en avertissement (warning). Enfin, l’exemple utilise l’élément <failureDefinitions> pour suivre uniquement les demandes qui génèrent un code d’état 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>

Exemple de code

Les exemples suivants activent le suivi détaillé (verbose) des demandes ayant échoué avec un code d’erreur HTTP 500 dans le contenu ASP.NET, pour toutes les demandes sur des pages *.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()