DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 893664 - Dernière mise à jour: samedi 20 juillet 2013 - Version: 7.0

 
Informations bêta
Cet article aborde la version bêta de Microsoft produit. Les informations contenues dans cet article sont fournis en tant que-est et est soumise aux changer sans préavis.

Aucun support produit officiel n'est disponible à partir de Microsoft pour ce produit bêta. Pour plus d'informations sur la façon d'obtenir de l'assistance pour une version bêta, consultez la documentation qui est fournie avec la version bêta fichiers du produit, ou vérifiez l'emplacement Web où vous avez téléchargé le mise à jour.
Colonne vocale d'assistance ASP.NET
Pour personnaliser cette chronique selon vos besoins, nous vous invitons à soumettre vos idées sur des sujets qui vous intéressent et problèmes que vous voulez voir traités dans de futurs articles de la Base de connaissances et des chroniques Support Voice. Vous pouvez soumettre vos idées et commentaires à l'aide de la Demandez-le (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) . Il existe également un lien vers le formulaire au bas de cette colonne.

Sommaire

Introduction

Bienvenue dans la chronique ASP.NET Support Voice ! Mon nom est Jerry Orman. J'ai ont été avec Microsoft depuis plus de 5 ans et ont passé la plupart de mes temps consacré au développement liés au Web des technologies telles que FrontPage et le nouveau Technologies SharePoint. J'ai passé l'année dernière fonctionne avec ASP.NET comme un ingénieur de support.

Ce mois-ci dans la colonne d'assistance vocale, je vais pour décrire la nouvelle fonctionnalité d'événements Web fournie dans la prochaine version de ASP.NET 2.0.

La fonctionnalité événements Web dans ASP.NET 2.0

Un des principaux nouveaux services fournis dans ASP.NET 2.0 est le Web Fonctionnalité d'événements fournie par le système de surveillance de la santé. En modifiant le Fichier Web.config, vous pouvez utiliser le système de contrôle d'état de journal non gérée exceptions, formulaires a expiré, les tickets d'authentification et autres données que vous souhaitez enregistré dans votre application. Cette colonne va vous aider à démarrer l'utilisation du Web Événements de fonctionnalité et fournit également des exemples montrant comment utiliser les différentes fournisseurs dans ASP.NET 2.0.

L'enregistrement s'effectue en définissant une règle qui associe les événements avec un fournisseur. La règle définit le type d'événements qui sont envoyés au fournisseur. Les événements de base suivants sont disponibles pour vous Pour vous connecter :
Réduire ce tableauAgrandir ce tableau
WebBaseEventLa classe d'événement de base pour tous les événements. Contient le les propriétés requises pour tous les événements comme le code de l'événement, code détail d'événement, le date et heure l'événement a été déclenché, numéro de séquence, le message d'événement, et Détails de l'événement.
WebManagementEventClasse de l'événement de base pour les événements de gestion, telles que durée de vie des applications, demande, erreur et les événements d'audit.
WebHeartbeatEventL'événement généré par l'application régulière intervalles d'exécution utile de capturer les informations d'état.
WebAuditEventLa classe de base pour les événements d'audit de sécurité, qui sont utilisées Pour marquer des conditions telles que l'échec d'autorisation, échec du décryptage, etc.
WebRequestEventLa classe de base pour tous les événements de demande d'information.
WebBaseErrorEventLa classe de base pour tous les événements indiquant l'erreur conditions.
Les types de fournisseurs disponibles vous permettent d'envoyer la sortie de l'événement pour les événements SQL Server, l'observateur, Windows Management Instrumentation (WMI), et courrier électronique. Les fournisseurs préconfigurés et les mappages d'événement réduisent la quantité de travail nécessaire pour obtenir la sortie des événements enregistré.

ASP.NET 2.0 utilise l'événement Journal fournisseur-de-l'emploi pour consigner les événements de démarrage des domaines d'application et l'arrêt, tout comme la consignation les exceptions non gérées. Cela permet de couvrir Parmi les scénarios de base. Par exemple, supposons que votre application lève une exception, mais l'utilisateur n'enregistre pas l'erreur et vous ne pouvez pas le reproduire. Avec la règle de journal des événements par défaut, vous serez en mesure de recueillir la informations exception et pile pour obtenir une meilleure idée de la nature de l'erreur s'est produite. Ou, si votre application est la perte d'état de session, vous pouvez rechercher le Journal des événements pour déterminer si le domaine d'application est le recyclage et pourquoi la domaine d'application s'est arrêté en premier lieu.

En outre, l'état de santé système de surveillance est extensible. Par exemple, vous pouvez définir des événements Web personnalisés, les surviennent au sein de votre application et ensuite définir une règle pour envoyer l'événement informations à un fournisseur de votre courrier électronique. Cela vous permet de lier facilement votre instrumentation pour le fournisseurs de contrôle d'état. Autre exemple : Vous pouvez déclencher un événement chaque fois qu'une commande est traitée et définir une règle qui envoie chaque événement à la base de données SQL Server. Vous pouvez également déclencher un événement lorsque un utilisateur ne parvient pas à se connecter plusieurs fois dans une ligne et configurer l'événement pour utiliser le fournisseurs basé sur la messagerie électronique.

La configuration pour les fournisseurs par défaut et événements est stocké dans le fichier Web.config global. Le fichier Web.config global stocke tous les paramètres basés sur le Web qui ont été stockées dans le fichier Machine.config dans ASP.NET 1 x. Le fichier Web.config global se trouve dans le code suivant répertoire :
%windir%\Microsoft.NET\Framework\v2.0.*\config\Web.config
La section <healthMonitoring>du fichier Web.config global Fournit des paramètres de configuration par défaut. Vous pouvez substituer ces paramètres ou configurer vos propres paramètres en implémentant la <healthMonitoring> section dans le fichier Web.config de votre application.

Le section <healthMonitoring>du fichier Web.config global contient le éléments suivants : </healthMonitoring></healthMonitoring></healthMonitoring>
  • fournisseurs Contient les fournisseurs définis pour l'Observateur d'événements, WMI et SQL Serveur.
  • eventMappings Contient des mappages pour les différentes classes de WebBase. Vous pouvez étendre Cette liste si vous générez votre propre classe d'événements. Générer votre propre classe d'événements offre une granularité plus fine sur les fournisseurs de que vous envoyez des informations. Pour exemple, vous pouvez configurer des exceptions non gérées, pour être envoyé à SQL Server, lors de l'envoi de vos propres événements personnalisés à envoyer par courrier électronique.
  • règles Lie l'eventMappings au fournisseur.
  • mise en mémoire tampon Utilisée avec les fournisseurs SQL Server et de messagerie pour déterminer la fréquence à laquelle Pour vider les événements pour le fournisseur.
Vous trouverez ci-dessous un exemple de code à partir du fichier Web.config global.
<healthMonitoring>

	<!--  Event Log Provider being added. -->
	<providers>
      		<add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
	</providers>


	<!--  Event mapping provides a friendly name to the events based on the WebBaseErrorEvent class.  -->

	<eventMappings>
			<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
						startEventCode="0" endEventCode="2147483647" />
	</eventMappings>


	<!-- Rule tying the "All Errors" event mapping to the EventLog Provider.  -->
	<rules>
      		<add name="All Errors Default" eventName="All Errors" provider="EventLogProvider"
						profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00"
						custom="" />
	</rules>

</healthMonitoring>

Exemple de fournisseur

Cet exemple de fournisseur contient les fichiers suivants :
  • ViewEvents.aspx le fichier – déclenche l'événement web personnalisé MyEvent dans l'événement click du bouton Page_Load et du journal des événements . A un GridView qui utilise la connexion de base de données dans le Fichier Web.config pour répertorier les événements consignés dans SQL Server.

    N'oubliez pas de configurer la chaîne de connexion dans le fichier Web.config pour pointer vers votre base de données ASPNETDB .
  • Le fichier Web.config – a tous les divers fournisseurs et règles configurées et commenté. Ne commentez pas la règle que vous souhaitez tester, puis recherchez le Pages default.aspx et ViewEvent.aspx pour afficher un aperçu de la sortie comme.
  • MyEvent.cs le fichier – situé dans le dossier App_Data. Il est utilisé dans le Page ViewEvents.aspx pour déclencher un événement personnalisé.
  • Default.aspx le fichier – lève une exception System.NullReferenceException voir non quel un gérée journaux d'exceptions.
  • EmailTemplateTest.aspx le fichier – utilisé pour obtenir l'exemple TemplateemailProvider. Le fichier code-behind pour le fichier EmailTemplateTest.aspx comporte des lignes de code vous pouvez supprimer, qui entraînera la page lever une exception.

Comment stocker les événements de l'Observateur d'événements

Comme je l'ai mentionné précédemment, le fournisseur pour l'enregistrement des événements dans le L'Observateur d'événements est configuré dans le fichier Web.config global. Par défaut, tous les événements basés sur WebBaseErrorEvent et WebFailureAuditEvent sont enregistrés. Vous pouvez ajouter des règles supplémentaires au journal supplémentaire informations dans le journal des événements. Par exemple, si vous voulez enregistrer tous les événements (c'est-à-dire, tous les événements basés sur WebBaseEvent), vous pouvez ajouter la règle suivante à votre fichier Web.config :
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />
	</rules>
</healthMonitoring>
Cette règle se lient à la table d'événements de Tous les événements pour le fournisseur du journal des événements. Les deux eventMapping et le fournisseur sont inclus dans le fichier Web.config global. Vous pouvez ensuite utiliser la Page ViewEvents.aspx pour déclencher les événements générés en parcourant la page. Le page se déclenche également l'événement personnalisé MyEvent dans l'événement Page_Load et un clic sur un bouton .

Pour voir le type de données générées, parcourir le Page Default.aspx. Une exception System.NullReferenceException est levée et l'événement suivant va être enregistré dans l'événement Observateur :

Type d'événement : avertissement
Source de l'événement : ASP.NET 2.0.50601.0
Catégorie d'événement : Événement Web
L'ID d'événement : 1311
Date : 16/8/2005
Heure : 9:37:44 PM
Utilisateur : n/a
Ordinateur : Nom de l'ordinateur
Description :
Code d'événement : 3005
Message de l'événement : une exception non gérée s'est produite.
Heure de l'événement : 16/8/2005 21:37:44: 00
Heure de l'événement (UTC): 17/8/2005 2:37:44 AM
ID d'événement : 88838b4e73cf4a0d9a36ac737ff9d1a0
Séquence d'événements : 39
Occurrence de l'événement : 1
Code d'événement détail: 0
Informations de l'application : domaine d'Application : d047d537-2-127687190240098660
Niveau de confiance : complet
Application virtuelle Chemin d'accès : /WebSite3
Chemin d'accès de l'application : Physique chemin d'accès
Nom de l'ordinateur : Ordinateur nom
Traiter les informations: ID de processus : 3776
Nom du processus : WebDev.WebServer.EXE
Nom du compte : domaine\utilisateur
Informations sur les exceptions : Type d'exception : l'exception NullReferenceException
Message d'exception : la référence d'objet pas définie à une instance d'un objet.
Demande d'informations : URL de demande : http://localhost:1698/WebSite3/default.aspx
Chemin d'accès de la demande : /WebSite3/default.aspx
Adresse de l'hôte : 127.0.0.1
Utilisateur : Domaine\utilisateur
Est authentifié : True
Type d'authentification : NTLM
Thread nom du compte : domaine\utilisateur
Informations sur le thread :
ID de thread: 8
Thread nom du compte : domaine\utilisateur
Emprunte une identité : False

Trace de la pile : au _Default.Page_Load (object sender, EventArgs e) dans c:\Documents et Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:Line 15
à System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objet o, objet t, EventArgs e)
à System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
à System.Web.UI.Control.OnLoad (EventArgs e) à System.Web.UI.Control.LoadRecursive()
à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Détails de l'événement personnalisé : pour en savoir plus informations, consultez le Centre aide et Support à http://support.Microsoft.com.

Enregistrement de tous les événements dans le journal des événements génère également des événements d'information. L'événement suivant affiche l'adresse URL autorisation réussi pour la demande de page :

Événement Type : informations
Source de l'événement : ASP.NET 2.0.50601.0
Catégorie d'événement : Web Événement
L'ID d'événement : 1314
Date : 16/8/2005
Durée : 11:04:44 PM
Utilisateur : N/A
Ordinateur : Ordinateur nom
Description :
Code d'événement : 4003
Message d'événement : URL l'autorisation a réussi pour la demande.
Heure de l'événement : 16/8/2005 11:04:44 PM
Heure de l'événement (UTC): 17/8/2005 4:04:44 AM
ID d'événement : fec3d73fba0247eaba425e5ccfada18e
Séquence d'événements: 2
Occurrence de l'événement : 1
Code d'événement détail: 0
Informations de l'application :
Domaine d'application : d047d537-1-127687250829701433
Niveau de confiance : complet
Application virtuelle Chemin d'accès : /WebSite3
Chemin d'accès de l'application : C:\Documents et Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Nom de l'ordinateur : Nom de l'ordinateur
Informations sur les processus :
Processus ID: 2292
Nom du processus : WebDev.WebServer.EXE
Nom du compte : Domaine\utilisateur
Demande d'informations :
URL de la demande : http://localhost:2087/WebSite3/default.aspx
Chemin d'accès de la demande : /WebSite3/default.aspx
Adresse de l'hôte : 127.0.0.1
Utilisateur : Domaine\utilisateur
Est authentifié : True
Type d'authentification : NTLM
Thread nom du compte : domaine\utilisateur

Détails de l'événement personnalisé :
Pour plus d'informations informations, consultez le Centre aide et Support à http://support.Microsoft.com.

Comment stocker les événements de SQL Server

Cette méthode utilise la base de données ASPNETDB , qui est généré par l'outil Aspnet_regsql.exe. Le fournisseur par défaut utilise la chaîne de connexion LocalSqlServer, qui utilise soit une basé sur le fichier de base de données dans le dossier App_data ou l'instance SQLExpress locale de SQL Server. La chaîne de connexion LocalSqlServer et le SqlProvider sont configuré dans le fichier Web.config global.

Le LocalSqlServer chaîne de connexion dans le fichier Web.config global ressemble à ceci :
<connectionStrings>
	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
Si vous souhaitez utiliser un autre serveur SQL Server, vous devrez utiliser le Outil Aspnet_regsql.exe, qui se trouve dans le dossier %windir%\Microsoft.NET\Framework\v2.0.*\Aspnet_regsql.exe. Utilisez le Outil Aspnet_regsql.exe pour générer une base de données ASPNETDB personnalisé sur le serveur SQL Server, puis ajoutez la chaîne de connexion à votre .config applications de fichier, et ensuite ajouter un fournisseur à l'aide de la nouvelle chaîne de connexion. Une fois la base de données ASPNETDB créée, vous devrez définir une règle pour lier une eventMapping à la sqlProvider.

Pour configurer une base de données personnalisée, procédez comme suit :
  1. Générer une base de données ASPNETDB .
    1. Exécutez aspnet_regsql.exe w et de guider le Assistant.
    2. Exécutez la commande pour automatiser le processus : Aspnet_regsql – A – s w SQL Server -E.
  2. Ajouter une chaîne de connexion qui pointe vers la base de données, donc qu'il ressemble à ceci :
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Ajouter un fournisseur pour utiliser la chaîne de connexion MYASPNETDB, donc qu'il ressemble à ceci :
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Si vous utilisez la valeur par défaut SqlProvider ou configurez votre propre fournisseur, vous devrez ajouter une règle de liaison du fournisseur avec une table d'événements. Le règle suivante lie le nouveau fournisseur que vous avez créé ci-dessus à la table d'événements de Tous les événements . Cette règle va enregistrer tous les événements basés sur WebBaseEvent et envoyez-les aux MySqlWebEventProvider qui utilisera le Chaîne de connexion MYASPNETDB. Le code suivant ajoute une règle pour lier le fournisseur avec une table d'événements :
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
	</rules>
</healthMonitoring>
Si vous souhaitez uniquement envoyer des erreurs de SQL Server, vous pouvez ajouter le règle suivante :
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Comment faire pour transférer les événements à WMI

Vous pouvez également transférer les événements à WMI. Le fournisseur WMI est configuré dans le fichier Web.config global par défaut.

Le exemple de code suivant ajoute une règle afin de transférer les événements à WMI :
<providers>
	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
Vous devrez ajouter une règle pour associer un eventMapping à la fournisseur et également à une application d'écouteur WMI pour écouter les événements. Le exemple de code suivant ajoute une règle pour créer un lien à la table d'événements de Tous les événements du fournisseur WMI :
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
L'exemple d'application console SampleASPNET utilise l'objet ManagementEventWatcher pour surveiller des événements et de les afficher dans la console fenêtre.
Pour utiliser SampleASPNET, procédez comme suit :
  1. Lancer SampleASPNET.exe.
  2. Parcourez la page ViewEvents.aspx ; dans ce cas, vous verrez événements répertoriés dans l'application console.
  3. Cliquez sur Journal des événements Button_Click. La page publiera précédent et vous verrez les événements supplémentaires également consignés.
Réduire cette imageAgrandir cette image
Remarque : Si vous analysez les événements sur un ordinateur distant, l'écoute application doit être en cours d'exécution sur cet ordinateur en tant qu'un compte d'administrateur accès.

Comment faire pour transférer des événements à envoyer par courrier électronique

Vous pouvez également transférer des événements à envoyer par courrier électronique. Cela vous permettrait d'obtenir informations sur votre application dans votre (la probablement overflowing) Boîte de réception. Veillez à quels événements vous mappez à votre fournisseur de messagerie, comme des règles Vous pouvez involontairement envoyer vous-même un grand nombre d'informations qui peuvent être préférable de adapté pour SQL Server ou le journal des événements.

Il y a deux messages électroniques fournisseurs, SimpleMailWebEventProvider et TemplatedMailWebEventProvider. Chaque possède les mêmes attributs de configuration, à l'exception de « modèle » et les attributs « detailedTemplateErrors », qui sont uniquement disponibles sur la TemplatedMailWebEventProvider.

Remarque : Aucun de ces fournisseurs de messagerie électronique est configuré pour vous. Vous allez Vous devrez les ajouter à votre fichier Web.config.

La principale différence entre Ces fournisseurs de messagerie deux électronique est que SimpleMailWebEventProvider envoie des messages électroniques un modèle générique ne peuvent pas être modifié. L'exemple de fichier Web.config ajoute ce fournisseur de messagerie électronique à la liste des fournisseurs configurés à l'aide de la règle :
<add name="mySimple-mailWebEventProvider" type="System.Web.Management.Simple-mailWebEventProvider"
to="e-mail@foo.com" from="e-mail@foo.com" maxMessagesPerNotification="1" maxEventsPerMessage="10"
buffer="true" bufferMode="Critical Notification"
subjectPrefix="Web Events"/>
La règle suivante est également ajoutée pour lier le fournisseur de messagerie électronique à la table d'événements de Tous les événements :
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
Le message d'alerte électronique est semblable à la suivante :
Sujet : Notification d'événement 12, partie 1: Web Événement EventsMicrosoft.Samples.WebEvents.MyEvent reçu dans / WebSite3

** Informations d'application **
---------------
Domaine d'application : d047d537-9-127687218865923053 Niveau de confiance : chemin virtuel de l'Application complète : chemin de l'Application WebSite3 : C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ Machine nom :<computer name="">

** Événements **
---------------
Événement code : 100010
Message d'événement : Button1_Click
Heure de l'événement : 16/8/2005 10:12:52 PM
Heure de l'événement (UTC): 17/8/2005 3:12:52 AM
ID d'événement : séquence d'événements 6e5cd252d6114a9e98687598dc6b5d50 : 12 occurrence de l'événement : événement 5 Détail du code: 0

Événement personnalisé Détails :

---------------</computer>
L'exemple suivant est une alerte par e-mail message qui indique une exception non gérée :
Objet : Notification d'événement 7, partie 1: Web Événement EventsSystem.Web.Management.WebRequestErrorEvent reçu dans / WebSite3

** Informations d'application **
---------------
Domaine d'application : d047d537-5-127687293149504903 Niveau de confiance : chemin virtuel de l'Application complète : chemin de l'Application WebSite3 : C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ Machine nom :<computer name="">

** Événements **
---------------
Événement code : 3005
Message de l'événement : une exception non gérée s'est produite.
Événement durée : 17/8/2005 12:17:37 AM
Heure de l'événement (UTC): 17/8/2005 5:17:37 AM
L'ID d'événement : séquence d'événements 14b7f24102e140bbbae302d80e5a5f36 : événement 7 occurrence: 1 événement détail code: 0

Informations sur les processus :
Processus ID: 2292
Nom du processus : WebDev.WebServer.EXE
Nom du compte : Domaine\utilisateur

Informations sur les exceptions :
Type d'exception : System.NullReferenceException
Message d'exception : référence d'objet non définie pour une instance d'un objet.

Demande d'informations :
URL de la demande : http://localhost:2087/WebSite3/default.aspx
Chemin d'accès de la demande : /WebSite3/default.aspx
Adresse de l'hôte : 127.0.0.1
Utilisateur : Domaine\utilisateur
Est authentifié : True
Type d'authentification : NTLM
Thread nom du compte : domaine\utilisateur

Informations sur le thread :
ID de thread : 7
Nom du compte de thread : domaine\utilisateur
Emprunte une identité : False
Pile trace: à _Default.Page_Load (Object sender, EventArgs e) dans c:\Documents et Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:Line 15
à System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objet o, objet t, EventArgs e)
à System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
à System.Web.UI.Control.OnLoad (EventArgs e) à System.Web.UI.Control.LoadRecursive()
à System.WebUI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</computer>
TemplatedMailWebEventProvider permet de spécifier une page ASPX en tant que modèle--vous deviné--. Le sortie de la page ASPX est utilisé dans le corps du message électronique, ce qui vous permet personnaliser l'apparence des données que vous recevez.

L'exemple d'application utilise le code suivant pour ajouter TemplatedMailWebEventProvider dans le fichier Web.config fichier et spécifiez la page EmailTemplateTest.aspx comme modèle. (Le fichier EmailTemplateTest.aspx page parcourt les événements disponibles dans le tampon, et les affiche dans un tableau.)
<add name="myTemplatedMailWebEventProvider" type="System.Web.Management.TemplatedMailWebEventProvider"
to="e-mail@foo.com" from="e-mail@foo.com " buffer="true"
bufferMode="Critical Notification" maxMessagesPerNotification="10" maxEventsPerMessage="10"
template="e-mailTemplateTest.aspx" detailedTemplateErrors="false" />
Le message d'alerte électronique est semblable à la suivante :
Sujet : Notification d'événement 3, partie 1:10 événements reçus dans / WebSite3

Occurrence Source temps Code détail Code Message
4 System.Web.Security.UrlAuthorizationModule 17/8/2005 12:40:45 AM 4003 URL 0 l'autorisation a réussi pour la demande.
4 8/17/2005 12:40:45 AM 4004 0 Autorisation de fichier a réussi pour la demande.
ASP 7.ViewEvents_aspx 17/8/2005 12:40:45: 00 100010 0 De chargement de la page d'exemple événement Web
8 ASP.ViewEvents_aspx 17/8/2005 12:40:45: 00 100010 Button1_Click 0
5 SystemWeb.Security.UrlAuthorizationModule 17/8/2005 12:40:45 AM 4003 URL 0 l'autorisation a réussi pour la demande.
5 8/17/2005 12:40:45 AM 4004 0 Autorisation de fichier a réussi pour la demande.
ASP 9.ViewEvents_aspx 17/8/2005 12:40:45: 00 100010 0 De chargement de la page d'exemple événement Web
10 ASP.ViewEvents_aspx 17/8/2005 12:40:45: 00 100010 Button1_Click 0
6 System.Web.Security.UrlAuthorizationModule 17/8/2005 12:40:46 AM 4003 URL 0 l'autorisation a réussi pour la demande.
6 8/17/2005 12:40:46 AM 4004 0 Autorisation de fichier a réussi pour la demande.
Dans les deux cas, si le attribut de la mémoire tampon a la valeur false, le message électronique contiendra un seul événement. Avec mise en mémoire tampon a la valeur true, vous devez également spécifier un bufferMode qui indique la fréquence de vidage de la mémoire tampon. Il existe certains bufferModes par défaut dans le fichier global Fichier Web.config.

Si detailedTemplateErrors = « true », alors les erreurs qui se produisent lorsque vous exécutez le modèle sera envoyé dans le corps de la courrier électronique. Si detailedTemplateErrors = « false », une erreur générique est envoyée.

A erreur détaillé levée par EmailTemplateTest.aspx ressemble à ceci :
Erreur serveur dans ' / WebSite3' Application.

Un non gérée une exception s'est produite lors de l'exécution de la page de modèle utilisée pour créer Cette notification d'événement. Les événements 1 qui faisaient partie de ce message ont été ignoré.

Description : Une exception non gérée s'est produite lors de la exécution de la demande web en cours. Veuillez consulter la trace de la pile pour plus d'informations informations sur l'erreur et son origine dans le code.

Détails des exceptions : System.Web.HttpException : can d'état de Session uniquement être utilisé lorsque enableSessionState est définie sur true, soit dans une configuration fichier ou dans la directive de Page. Veuillez également vous assurer que System.Web.SessionStateModule ou un module d'état de session personnalisé est inclus dans le <configuration>\<system.web>\<httpModules> section dans le configuration de l'application.

Fichier source : c:\Documents et Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs Ligne : 17

Trace de la pile: [HttpException (0 x 80004005): état de Session peut uniquement être utilisé lorsque enableSessionState est définie sur true, soit dans une configuration fichier ou dans la directive de Page. Veuillez également vous assurer que System.Web.SessionStateModule ou un module d'état de session personnalisé est inclus dans le <configuration>\<system.web>\<httpModules> section dans le configuration de l'application].
System.Web.UI.Page.get_Session() +146
e-mailTemplateTest.Page_Load(Object sender, EventArgs e) dans c:\Documents et Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr FP, objet o, objet t, EventArgs e) + 13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) + 45
System.Web.UI.Control.OnLoad (EventArgs e) +80
SystemWeb.UI.Control.LoadRecursive() + 49
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0 x 80004005): Exception de type « System.Web.HttpUnhandledException » a levée.]
System.Web.UI.Page.HandleError (Exception e) +929
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +229
System.Web.UI.Page.ProcessRequest() + 12
System.Web.UI.Page.ProcessRequest (HttpContext context) +80
System.Web.HttpServerUtility.ExecuteInternal (Gestionnaire IHttpHandler, TextWriter writer, preserveForm Boolean, chemin VirtualPath, VirtualPath filePath, String physPath, erreur d'Exception, String queryStringOverride) +1012

[HttpException (0 x 80004005): erreur la demande enfant en cours d'exécution pour / E/WebSite3-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (interface IHttpHandler Gestionnaire, TextWriter writer, preserveForm Boolean, chemin VirtualPath, VirtualPath filePath, String physPath, erreur d'Exception, String queryStringOverride) +1525
System.Web.HttpServerUtility.Execute (String path, TextWriter writer, PreserveForm Boolean) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (chaîne chemin d'accès, TextWriter writer, ErrorFormatterGenerator errorFormatterGenerator) +249</httpModules></system.web></configuration></httpModules></system.web></configuration>
Si l'attribut a la valeur false et si une erreur s'est produite, vous pourrez uniquement obtenir un message d'erreur générique, qui ressemble à ceci :
Serveur Erreur dans ' / WebSite3' Application.

Une exception non gérée s'est produite lors de l'exécution de la page de modèle utilisée pour créer cet événement notification. Les 8 événements qui faisaient partie de ce message ont été ignoré.

Description : La configuration actuelle empêche le Détails de l'exception en cours inclus dans ce message. Ajouter le « detailedTemplateErrors = true "pour activer la configuration du fournisseur d'attribut Détails de l'exception à déclarer.
Remarque : Pour les attributs liés à la mise en mémoire tampon, les résultats de chaque vidage dans un notification. Si le vidage contient plus d'événements que maxEventsPerMessage permet, la notification doit être subdivisée en plusieurs courriers électroniques, mais ils sont tous considérés encore comme à la même notification. Par exemple, un vidage génère des 13 événements mais maxEventsPerMessage permet uniquement de cinq. Vous recevrez trois courriers électroniques : les deux premiers e-mails contiendra chacune cinq événements, et le troisième message contiendra trois événements.

S'il y a davantage de messages permet de maxMessagesPerNotification , certains événements sont supprimés. Par exemple, si vous définissez maxMessagesPerNotification à deux et que vous utilisez le même maxEventsPerMessage comme indiqué ci-dessus, vous recevrez uniquement deux messages électroniques. Les événements qui serait sur le troisième électroniques sont supprimées. Les chutes ou la troncature des notifications seront indiquées dans un des messages électroniques pour le fournisseur de messagerie simple. En haut du message électronique affiche le texte suivant :
** Avertissements **
---------------
Les 10 événements restants pour cette période de notification est ignorée car le nombre maximal de messages autorisés par notification a été dépassée. (ID d'avertissement : 101)
Depuis que vous avez contrôle du format du message électronique pour le fournisseur basé sur un modèle, vous avez Pour vérifier/troncature gouttes vous-même et déterminer s'il faut inclure dans le message électronique.

Remarque : Fournisseurs de messagerie utilisent System.Net.Mail, afin d'avoir à configurer System.Net.Mail dans votre fichier Web.config.

Pour plus d'informations informations sur le schéma des paramètres ASP.NET, visitez le site Web Microsoft suivant site :
healthMonitoring, élément (schéma des paramètres ASP.NET)
http://msdn2.Microsoft.com/library/2fwh2ss9(en-us,VS.80).aspx (http://msdn2.microsoft.com/library/2fwh2ss9(en-us,vs.80).aspx)
Pour plus d'informations sur la surveillance de l'intégrité dans ASP.NET 2.0, reportez-vous au le site Web de Microsoft suivant :
Comment utiliser le contrôle d'état ASP.NET 2.0
http://msdn2.Microsoft.com/en-us/library/ms998306.aspx (http://msdn2.microsoft.com/en-us/library/ms998306.aspx)
Comme toujours, n'hésitez à soumettre des idées sur des sujets que vous souhaitez traités dans de futurs des colonnes ou dans la Base de connaissances à l'aide de la Demandez-le (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) .

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 2.0
Mots-clés : 
kbhowto kbasp kbmt KB893664 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 893664  (http://support.microsoft.com/kb/893664/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Article KB retiré.Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store