Partager via


Comment : implémenter l'exemple de fournisseur personnalisé de contrôle d'état

Mise à jour : novembre 2007

L'exemple proposé dans la rubrique Fournisseur de contrôle d'état ASP.NET personnalisé, exemple illustre la création d'un fournisseur personnalisé qui traite des événements d'état ASP.NET. L'exemple de code montre comment dériver de la classe BufferedWebEventProvider pour créer un fournisseur personnalisé qui écrit les informations sur les événements dans un fichier local.

L'exemple proposé a été délibérément simplifié. L'objectif est de vous permettre d'appréhender correctement les mécanismes de base d'un fournisseur personnalisé. Dans un scénario réel, vous pouvez utiliser l'exemple de code comme test préliminaire du comportement d'une application afin de mieux comprendre les informations fournies par le contrôle d'état ASP.NET.

Cet exemple de fournisseur illustre les fonctionnalités suivantes :

  • Génération d'un fournisseur personnalisé en héritant du BufferedWebEventProvider. Ce fournisseur permet notamment de stocker des informations d'événement sur la base de divers facteurs (par exemple, un intervalle de temps spécifié) avant de les enregistrer dans un journal.

  • Configuration d'un fournisseur personnalisé.

  • Interface avec l'Observateur d'événements Windows.

L'exécution de l'exemple requiert les éléments suivants :

Pour générer le fournisseur d'événements personnalisés

  • Compilez le fournisseur d'événements personnalisé comme une bibliothèque et placez celle-ci dans le répertoire Bin de votre application ASP.NET, ou spécifiez un nom fort pour l'assembly et placez-le dans le Global Assembly Cache (GAC).

    L'exemple de commande suivant montre comment compiler l'exemple à l'aide du compilateur de ligne de commande.

    vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
    
    csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll  /r:<required namespace>
    
    Remarque :

    Si vous ne pouvez pas exécuter la commande du compilateur, vous devez ajouter le chemin d'accès de l'installation du .NET Framework à la variable PATH Windows avant d'exécuter la commande. Dans Windows, cliquez avec le bouton droit sur Poste de travail, puis sur Propriétés, sur l'onglet Avancé, puis sur le bouton Variables d'environnement. Dans la liste Variables système, double-cliquez sur la variable Path. Dans la zone de texte Valeur de la variable, ajoutez un point-virgule (;) à la fin des valeurs existantes dans la zone de texte, puis entrez le chemin d'accès de votre installation .NET Framework. Le .NET Framework est habituellement installé dans le dossier d'installation de Windows à l'emplacement \Microsoft.NET\Framework\numéroVersion.

Pour configurer l'application afin qu'elle utilise l'exemple

  1. Si votre application contient déjà un fichier nommé Web.config dans le dossier racine, ouvrez-le. Sinon, créez un fichier texte nommé Web.config et ajoutez-y le texte suivant.

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    
  2. À l'intérieur des balises system.web, ajoutez l'élément healthMonitoring suivant.

    <healthMonitoring
        heartBeatInterval="0" enabled="true">
      <bufferModes>
        <add name="Custom Notification"
          maxBufferSize="10"
          maxFlushSize="5"
          urgentFlushThreshold="2"
          regularFlushInterval="Infinite"
          urgentFlushInterval="00:00:30"
        />
      </bufferModes>
      <providers>
        <add name="SampleEventProvider" type="Samples.AspNet.Management.SampleBufferedEventProvider" 
        buffer="true"
        bufferMode="Custom Notification" />
      </providers>
      <profiles>
        <add name="Custom"
          minInstances="1"
          maxLimit="Infinite"
          minInterval="00:00:00" />
      </profiles>
      <rules>
        <add name="Custom Event Provider"
          eventName="All Events"
          provider="SampleEventProvider"
          profile="Custom" />
      </rules>
    </healthMonitoring>
    

    Les paramètres de l'élément healthMonitoring utilisent un élément providers pour ajouter le fournisseur personnalisé et spécifier un élément profiles qui (dans ce cas-ci) protège le serveur en limitant le nombre d'occurrences autorisées de l'événement. L'exemple inclut également un élément rules pour associer un événement au profil et au fournisseur.

    L'attribut type peut simplement indiquer le nom de la classe comme dans l'exemple de code précédent ou spécifier un type qualifié complet, comme dans l'exemple suivant :

    type="Samples.AspNet.Management.SampleWebRequestEvent,
    Sample.SampleCustomEventProvider,Version=1.0.0.0,Culture=neutral, 
    PublicKeyToken=xxxxxxxxxxxx"
    
    Remarque :

    Le type qualifié complet est requis uniquement si la classe a été installée dans le GAC ou le répertoire Bin.

Pour tester l'événement Web personnalisé

  1. Dans votre navigateur, demandez une page de l'application Web.

    L'exécution d'une page quelconque de l'application déclenche l'événement personnalisé.

  2. Pour consulter vos données d'événement personnalisé, ouvrez le fichier journal spécifié par la variable logFilePath dans le code.

Voir aussi

Concepts

Fournisseur de contrôle d'état ASP.NET personnalisé, exemple

Vue d'ensemble du contrôle d'état ASP.NET

Référence

healthMonitoring, élément (Schéma des paramètres ASP.NET)

EventLogWebEventProvider

Autres ressources

Création de sites Web ASP.NET