Heim > Artikel > Backend-Entwicklung > Tutorial zur Verwendung des HealthMonitor-Attributs in ASP.NET
In ASP.NET 2.0 können Sie das Attribut „healthMonitoring“ verwenden, um das -Ereignis zu überwachen. Das Attribut „healthMonitoring“ ist ein methodenbasierter Anbieter, bei dem Sie Ihren eigenen Anbieter erstellen können. Mit dem Attribut „healthMonitoring“ können wir Fehler, erfolgreiche Ereignisse usw. für verschiedene Datenquellen wie Ereignisprotokolle, SQL Server aufzeichnen und sogar unsere eigenen Anbieter erstellen, indem wir die Klasse „WebEventProvider“ erben. In diesem Artikel werde ich durch die Konfiguration einer Webanwendung gehen, die SqlServer-Fehler erkennt und eine E-Mail an die E-Mail-Adresse einer anderen Person sendet. Schauen Sie sich zunächst das Programmfragment „healthMonitoring“ in web.config an, in dem Sie die Ereignisse erstellen können, die Sie verwenden möchten.
<healthMonitoring Enabled="true|false" heartBeatInterval="time interval"> <bufferModes>... </bufferModes> <providers>... </providers> <eventMappings>... </eventMappings> <profiles>... </profiles> <rules>... </rules> </healthMonitoring>
Wenn Sie sich das Element d8aea2075158d792937a399d255d2e1d ansehen, können Sie feststellen, ob Sie das Attribut auf gültig oder ungültig setzen können, und Sie können auch das Zeitintervall angeben, in dem WebHeaderBeatEvent aktiviert wird. healthMonitoring hat 5 Kinder.
bufferModes, wo Sie die Puffergröße eines Providers definieren können.
Anbieter, hier werden die Anbieter beschrieben, die Ereignisse verarbeiten.
EventMappings, hier können Sie Ereignisnamen zeichnen, die sich auf benutzerfreundliche Ereignistypen beziehen.
Profile definieren hier eine Sammlung von Parametersätzen, die zur Konfiguration von Ereignissen verwendet werden können.
Regeln, zeichnen Sie hier das Ereignisdiagramm der Anbieter.
Weitere Informationen zu diesen Elementen finden Sie in der VS 2550-Dokumentation.
Bevor wir fortfahren, finden Sie hier eine Liste einiger Anbieter in 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
Diese müssen nicht erklärt werden, die Namen sagen uns, was sie tun. Erwähnen Sie auch, dass SqlWebEventProvider zum Funktionieren auf den SQL-Server angewiesen ist, der Ereignisse in der Tabelle aspnet_Web_Event speichert. Um diese Datenbank zu installieren muss der aspnet_regsql.exe-Assistent ausgeführt werden, der sich im Framework-Ordner befindet.
Konfigurieren Sie nun das Programm so, dass es einen Anmeldefehler für den SQL-Server-Anbieter hat und beim Senden einer E-Mail einen Fehler generiert.
Das Folgende ist ein Beispiel für die Verwendung von SqlWebEventProvider und SimpleMailWebEventProvider zum Speichern von Rechtschreibfehlerereignissen.
<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>
In diesem Beispiel wird der SQL-Anbieter verwendet, um alle Fehlerereignisse zu protokollieren, und der E-Mail-Anbieter wird verwendet, um eine Nachricht zu senden, wenn das Webanforderungsfehlerereignis aktiviert wird.
Hier sind einige Ereignisse, die mit ASP .NET 2.0 veröffentlicht wurden:
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
Sie können diese Ereignisse verwenden, um Bilder eines Anbieters zu zeichnen. Sie können auch Ihre eigenen Ereignisse erstellen, die von der WebBaseEvent-Klasse geerbt werden.
Um ein Ereignis automatisch zu aktivieren, können Sie die Wakeup-Methode der WebBaseEvent-Klasse verwenden:
try { //.... }
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();}
Das obige ist der detaillierte Inhalt vonTutorial zur Verwendung des HealthMonitor-Attributs in ASP.NET. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!