Tutoriel sur l'utilisation de l'attribut healthMonitor dans ASP.NET

零下一度
Libérer: 2017-07-03 17:11:28
original
2434 Les gens l'ont consulté

Dans ASP.NET 2.0, vous pouvez utiliser l'attribut healthMonitoring pour surveiller l' événement . L'attribut healthMonitoring est un fournisseur basé sur une méthode dans lequel vous pouvez créer votre propre fournisseur. Grâce à l'attribut healthMonitoring, nous pouvons enregistrer les erreurs, les événements réussis, etc., pour différentes sources de données, telles que les journaux d'événements, Sql Server et même créer nos propres fournisseurs en héritant de la classe WebEventProvider. Dans cet article, je vais expliquer la configuration d'une application Web qui détecte les erreurs SqlServer et envoie un e-mail à l'adresse e-mail de quelqu'un. Tout d’abord, jetez un œil au fragment du programme healthMonitoring dans web.config, où vous pouvez créer les événements que vous utiliserez.

<healthMonitoring Enabled="true|false" heartBeatInterval="time interval">
 <bufferModes>... </bufferModes>
 <providers>... </providers>
 <eventMappings>... </eventMappings>
 <profiles>... </profiles>
 <rules>... </rules>
</healthMonitoring>
Copier après la connexion

Si vous examinez l'élément , vous pouvez déterminer si vous pouvez définir l'attribut comme étant valide ou non valide, et vous pouvez également spécifier l'intervalle de temps pour que WebHeaderBeatEvent soit réveillé. healthMonitoring a 5 enfants.

bufferModes, où vous pouvez définir la taille du tampon d'un fournisseur.

Fournisseurs, décrit ici les fournisseurs qui gèrent les événements.

EventMappings, ici vous pouvez dessiner des noms d'événements liés aux types d'événements amicaux.

Profils, définissent ici une collection d'ensembles de paramètres qui peuvent être utilisés pour configurer des événements.

Règles, dessinez ici le diagramme des événements des fournisseurs.

Vous pouvez en savoir plus sur ces éléments dans la documentation VS 2550.

Avant de continuer, voici une liste de quelques fournisseurs dans ASP.NET :

System.Web.Management.MailWebEventProvider
System.Web.Management.SimpleMailWebEventProvider
System.Web.Management.TemplatedMailWebEventProvider
System.Web.Management.TraceWebEventProvider
System.Web.Management.EventLogWebEventProvider
System.Web.Management.SqlWebEventProvider
System.Web.Management.WmiWebEventProvider
Copier après la connexion

Il n'est pas nécessaire de les expliquer, les noms nous disent ce qu'ils font. Mentionnez également que SqlWebEventProvider s'appuie sur le serveur SQL pour fonctionner, qui stocke les événements dans la table aspnet_Web_Event. Afin d'installer cette base de données, l'assistant aspnet_regsql.exe situé dans le dossier framework doit être exécuté.

Maintenant, configurez le programme pour avoir une erreur de connexion pour le fournisseur de serveur SQL et générer une erreur lors de l'envoi d'un e-mail.

Ce qui suit est un exemple d'utilisation de SqlWebEventProvider et SimpleMailWebEventProvider pour stocker des événements contenant des fautes d'orthographe.

<healthMonitoring enabled="true" heartBeatInterval="0"><bufferModes><add name="Critical Notification" maxBufferSize="100" maxFlushSize="20"urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
<add name="Analysis" maxBufferSize="1000" maxFlushSize="100" urgentFlushThreshold="100"regularFlushInterval="00:05:00" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
</bufferModes><providers>
<add name="CriticalMailEventProvider" type="System.Web.Management.SimpleMailWebEventProvider, System.Web ..." from=info@nsquared2.net to=fnormen@hotmail.com priority="High" bodyHeader="Warning!"bodyFooter="Please investigate ASAP." subjectPrefix="Action required." buffer="true" bufferMode="Critical Notification" maxEventLength="4096" maxSize="4096" maxMessagesPerNotification="1"/>
<add name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider, System.Web ..."connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="true"bufferMode="Analysis"/>
</providers>
<eventMappings>
<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent, System.Web ..."/><add name="Request Processing Errors" type="System.Web.Management.WebRequestErrorEvent, System.Web .../>
</eventMappings>
<profiles>
<add name="Default" minInstances="1" maxLimit="Infinite" minInterval="00:10:00"/>
</profiles>
<rules>
<add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default"minInterval="00:00:30"/>
<add name="Request Processing Errors" eventName="Request Processing Errors" provider="CriticalMailEventProvider" profile="Default"/>
</rules>
</healthMonitoring>
Copier après la connexion

Dans cet exemple, le fournisseur SQL est utilisé pour enregistrer tous les événements d'erreur, et le fournisseur de messagerie est utilisé pour envoyer un message lorsque l'événement d'erreur de requête Web est réveillé.

Voici quelques événements publiés avec ASP .NET 2.0 :

System.Web.Management.WebBaseEvent
System.Web.Management.WebHeartBeatEvent
System.Web.Management.WebApplicationLifetimeEvent
System.Web.Management.WebRequestEvent
System.Web.Management.WebBaseErrorEvent
System.Web.Management.WebErrorEvent
System.Web.Management.WebRequestErrorEvent
System.Web.Management.WebAuditEvent
System.Web.Management.WebFailureAuditEvent
System.Web.Management.WebSuccessAuditEvent
System.Web.Management.WebManagementEvent
System.Web.Management.WebViewStateFailureAuditEvent
System.Web.Management.WebAuthenticationFailureAuditEvent
System.Web.Management.WebAuthenticationSuccessAuditEvent
Copier après la connexion

Vous pouvez utiliser ces événements pour dessiner des images d'un fournisseur. Vous pouvez également créer vos propres événements hérités de la classe WebBaseEvent.

Pour réveiller automatiquement un événement, vous pouvez utiliser la méthode wakeup de la classe WebBaseEvent :

try
{
 //....
}
Copier après la connexion
catch(Exception e){ if (HealthMonitoringManager.Enabled) {  WebBaseEvent.Raise(new WebErrorEvent("My Error message", null, 5000, e)); }}
or:
if (HealthMonitoringManager.Enabled){ WebErrorEvent event = new WebErrorEvent("My error message", null, 5000, e); event.Raise();}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal