Partager via


Comment : implémenter et déclencher des événements de contrôle d'état ASP.NET personnalisés

Mise à jour : novembre 2007

L'exemple de cette section montre comment déclencher des événements de contrôle d'état personnalisés ASP.NET. Lorsque vous ajoutez un événement personnalisé à votre application, vous devez prendre en compte les points suivants :

  • Comment définir la portée de l'événement de contrôle d'état. S'il est prévu que l'événement soit déclenché dans toutes les applications d'un serveur, vous devez configurer l'événement avec une portée ordinateur. Pour ce faire, une des solutions les plus simples, illustrée dans cet exemple, consiste à créer un module HTTP qui déclenche l'événement personnalisé. Vous installez ensuite le module au niveau de l'ordinateur. Le module est appelé dans toutes les applications de l'ordinateur sur lequel il est installé.

  • Quand déclencher un événement de contrôle d'état. Vous pouvez déclencher des événements de contrôle d'état à n'importe quel moment du traitement de la demande. Un événement WebRequestEvent personnalisé est généralement déclenché au moment de l'événement système BeginRequest ou EndRequest.

Cet exemple illustre les fonctionnalités suivantes :

  • Génération d'un module HTTP pour déclencher des événements de contrôle d'état personnalisés.

  • Configuration de l'application pour qu'elle enregistre des événements dans un journal à l'aide du fournisseur EventLogWebEventProvider standard.

  • Enregistrement des informations d'événement dans un journal à l'aide du fournisseur EventLogWebEventProvider standard.

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

Pour générer le module HTTP

  • Placez le code source de Déclenchement d'événements de contrôle d'état ASP.NET personnalisés, exemple dans le répertoire App_Code de votre application ASP.NET, dans un fichier nommé SampleModule.vb ou SampleModule.cs.

    Remarque :

    Si vous avez déjà le code source dans le répertoire App_Code de votre application, vous devez ajouter la version du fournisseur d'événements personnalisés écrite dans le même langage que le code existant dans le répertoire.

    ASP.NET compilera le code du fournisseur d'événements personnalisés lors de la demande d'une page de votre application. Pour plus d'informations, consultez Dossiers de code partagé dans des sites Web ASP.NET.

    - ou -

  • Compilez le fournisseur d'événements personnalisés 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 ASP.NET afin qu'elle utilise l'exemple

  1. Si un fichier nommé Web.config existe déjà dans le dossier racine de votre application ASP.NET, ouvrez-le. Sinon, créez un fichier texte nommé Web.config et copiez-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 httpModules et l'élément healthMonitoring, élément (Schéma des paramètres ASP.NET) suivants.

    <httpModules>
      <add name="Raising Custom Web Events" 
        type="Samples.AspNet.Management.CustomWebEvents" 
      />
    </httpModules>
    <healthMonitoring 
      heartbeatInterval="0" 
      enabled="true">
      <eventMappings>
        <add name="SampleWebRequestEvent" 
          type="Samples.AspNet.Management.SampleWebRequestEvent" 
        />
      </eventMappings>
      <profiles>
        <add name="Custom" 
          minInstances="1" 
          maxLimit="Infinite" 
          minInterval="00:00:00" 
        />
      </profiles>
      <rules>
        <clear />
          <add name="Custom Web Request Event" 
            eventName="SampleWebRequestEvent"
            provider="EventLogProvider" 
            profile="Custom" 
         />
      </rules>
    </healthMonitoring>
    

    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.SampleModule,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. Exécutez l'Observateur d'événements Windows sur le serveur qui exécute votre application Web. Pour ce faire, cliquez sur Démarrer, sur Exécuter, tapez eventvwr dans la boîte de dialogue Exécuter, puis cliquez sur OK.

  2. Dans l'arborescence des journaux d'événements de l'Observateur d'événements, cliquez sur Application.

  3. Actualisez l'affichage du journal d'applications en cliquant sur Action puis sur Actualiser.

    Prenez note de la date, de l'heure et du nom de l'événement le plus récent. Vous utiliserez ces données ultérieurement pour vérifier que votre événement personnalisé a été déclenché.

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

    Pour utiliser l'événement personnalisé dans votre application, exécutez une page de l'application dans le navigateur. Vous pouvez examiner ensuite les résultats créés par l'événement personnalisé.

  5. Actualisez une nouvelle fois le journal d'applications et vérifiez que les informations de l'événement d'état publiées par l'événement personnalisé ont été enregistrées.

Voir aussi

Tâches

Déclenchement d'événements de contrôle d'état ASP.NET personnalisés, exemple

Concepts

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

Extension du traitement ASP.NET avec les modules HTTP