Partager via


Ajout du suivi des demandes ayant échoué <add>

Vue d’ensemble

Chaque élément <add> dans la collection <traceFailedRequests> peut inclure un élément <traceAreas> qui définit les fournisseurs de traces et les zones de trace propres aux fournisseurs qui généreront des événements de suivi pour la règle de suivi actuelle. Il peut également contenir un élément <failureDefinition>, qui vous permet de configurer les conditions d’échec d’une demande, par exemple, le délai de réponse du serveur, le code d’état HTTP et la quantité d’informations incluses dans la trace.

Compatibilité

Version Notes
IIS 10.0 L’élément <add> n’a fait l’objet d’aucune modification dans IIS 10.0.
IIS 8.5 L’élément <add> n’a fait l’objet d’aucune modification dans IIS 8.5.
IIS 8.0 L’élément <add> n’a fait l’objet d’aucune modification dans IIS 8.0.
IIS 7.5 L’élément <add> n’a fait l’objet d’aucune modification dans IIS 7.5.
IIS 7.0 L’élément <add> de la collection <traceFailedRequests> 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.
    Screenshot of Server Roles page, with the Health and Diagnostics tree expanded and Tracing selected and outlined. .
  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.
    Screenshot of Internet World Wide Web tree in Control Panel, with Health and Diagnostics expanded and 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 Select Role Services page of the Add Role Services Wizard, with Health and Diagnostics expanded and 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 tree, with Health and Diagnostics expanded and Tracing selected and outlined.

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é...
    Screenshot of Internet Information Services Manager dialog, with Failed Request Tracing selected in Actions pane.

  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.
    Screenshot of Edit Web Site Failed Request Tracing Settings dialog box, with Enable check box selected to enable tracing.

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 Internet Information Services Manager dialog, with Failed Request Tracing Rules selected in Home pane.

  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 of the Add Failed Request Tracing Rule Wizard, with content type 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é.
    Screenshot of Define Trace Conditions page of Add Failed Request Tracing Rule dialog, with conditions selected.

  7. Dans la page Sélectionner les fournisseurs de traces, sélectionnez un ou plusieurs fournisseurs de traces sous Fournisseurs.
    Screenshot of Select Trace Providers page of Add Failed Request Tracing Rule dialog, with Providers selected.

  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 of Add Failed Request Tracing Rule dialog, with Verbosity levels selected.

  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
customActionExe Attribut de chaîne facultatif.

Spécifie un fichier exécutable à exécuter quand une condition d’échec est remplie (par exemple, pour exécuter un fichier VBScript, spécifiez « Cscript.exe »). Toutes les variables de ligne de commande seront développées. Par exemple, « %windir% » sera développé par rapport au chemin du répertoire Windows.
customActionParams Attribut de chaîne facultatif.

Contient les paramètres à transmettre au fichier exécutable spécifié dans l’attribut customActionExe. Les variables de ligne de commande telles que « %windir% » seront développées. Vous pouvez également utiliser des variables de paramètre comme « %1 » et « %2 » dans la chaîne que vous spécifiez (par exemple, « MyScript.vbs %1 %2 »).
customActionTriggerLimit Attribut uint facultatif.

Spécifie le nombre maximal de fois où le programme spécifié par l’attribut customActionExe peut s’exécuter pendant la durée de vie du processus de travail pour la définition d’échec de demande. Cette valeur est réinitialisée à chaque nouveau cycle du processus. Les valeurs autorisées sont comprises entre 0 et 10 000. Cette fonction peut être utilisée, par exemple, pour créer un vidage de mémoire après l’échec suivant, mais pas après les autres échecs ultérieurs.

Remarque : Si la valeur CustomActionTriggerLimit que vous spécifiez est atteinte pendant l’exécution du processus de travail, les demandes ultérieures qui échouent sont enregistrées dans le journal, mais le programme spécifié dans CustomActionExe ne s’exécute pas. Les entrées dans le journal des échecs de demandes indiquent que la valeur CustomActionTriggerLimit a été atteinte. Par défaut, il s’agit de 1.
path Attribut de chaîne requis.

Spécifie le chemin pour lequel vous souhaitez enregistrer les événements de trace. Le chemin est relatif à l’URL (répertoire virtuel/répertoire). Les sous-chemins ne sont pas autorisés. De plus, le chemin doit se trouver dans le répertoire où la définition est spécifiée. Les valeurs avec des caractères génériques, par exemple « *.aspx », ne sont pas autorisées. Pour suivre le document par défaut, utilisez « / » comme valeur de chemin.

Éléments enfants

Élément Description
traceAreas Élément requis.

Configure les éléments à suivre pour un chemin donné.
failureDefinitions Élément requis.

Définit les conditions dans lesquelles enregistrer des traces pour une demande.

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