في ASP.NET 2.0، يمكن مراقبة الأحداث باستخدام سمة healthMonitoring. تعتبر سمة healthMonitoring موفرًا يعتمد على الطريقة، حيث يمكنك إنشاء الموفر الخاص بك. باستخدام سمة healthMonitoring، يمكننا تسجيل الأخطاء والأحداث الناجحة وما إلى ذلك لمصادر بيانات مختلفة، مثل سجلات الأحداث وSql Server وحتى إنشاء موفري الخدمات الخاصين بنا عن طريق وراثة فئة WebEventProvider. في هذه المقالة، سأقوم بالتعرف على تكوين تطبيق ويب يكتشف أخطاء SqlServer ويرسل بريدًا إلكترونيًا إلى عنوان البريد الإلكتروني لشخص ما. أولاً، قم بإلقاء نظرة على جزء برنامج healthMonitoring في web.config، حيث يمكنك إنشاء الأحداث التي ستستخدمها.
<healthMonitoring Enabled="true|false" heartBeatInterval="الفاصل الزمني">
<bufferModes>... </bufferModes>
<المقدمون>... </المقدمون>
<eventMappings>... </eventMappings>
<الملفات الشخصية>... </الملفات الشخصية>
<القواعد>... </القواعد>
</healthMonitoring>
إذا نظرت إلى عنصر <healthMonitoring>، فيمكنك تحديد ما إذا كان يمكنك تعيين السمة لتكون صالحة أو غير صالحة، ويمكنك أيضًا تحديد الفاصل الزمني لتنشيط WebHeaderBeatEvent. لدى healthMonitoring 5 أطفال.
bufferModes، حيث يمكنك تحديد حجم المخزن المؤقت للموفر.
الموفرون، هنا يصف الموفرون الذين يتعاملون مع الحدث.
EventMappings، هنا يمكنك رسم أسماء الأحداث المتعلقة بأنواع الأحداث المألوفة.
الملفات الشخصية، حيث يمكنك تحديد مجموعة من مجموعات المعلمات التي يمكن استخدامها لتكوين الأحداث.
القواعد، ارسم الرسم البياني لحدث مقدمي الخدمة هنا.
يمكنك قراءة المزيد حول هذه العناصر في وثائق VS 2550.
قبل المتابعة، إليك قائمة ببعض الموفرين في ASP.NET:
System.Web.Management.MailWebEventProvider
System.Web.Management.SimpleMailWebEventProvider
System.Web.Management.TemplateMailWebEventProvider
System.Web.Management.TraceWebEventProvider
System.Web.Management.EventLogWebEventProvider
System.Web.Management.SqlWebEventProvider
System.Web.Management.WmiWebEventProvider
إلى شرح ذلك، فالأسماء تخبرنا بما يفعلونه. أذكر أيضًا أن SqlWebEventProvider يعتمد على خادم Sql في العمل، والذي يقوم بتخزين الأحداث في جدول aspnet_Web_Event. لتثبيت قاعدة البيانات هذه، يجب تشغيل معالج aspnet_regsql.exe الموجود في مجلد إطار العمل.
الآن، قم بتكوين البرنامج ليحصل على خطأ في تسجيل الدخول لموفر خادم Sql وإنشاء خطأ عند إرسال بريد إلكتروني.
ما يلي هو مثال لاستخدام SqlWebEventProvider وSimpleMailWebEventProvider لتخزين أحداث الخطأ.
<healthMonitoring تمكين = "صحيح" heartBeatInterval = "0">
<أوضاع المخزن المؤقت>
<add name="الإخطارات الهامة" maxBufferSize="100" maxFlushSize="20"urgentFlushThreshold="1" RegularFlushInterval="Infinite" عاجلFlushInterval="00:01:00" maxBufferThreads="1"/> <
add name="تحليل " maxBufferSize = "1000" maxFlushSize = "100" عاجلFlushThreshold = "100"
RegularFlushInterval = "00:05:00" عاجلFlushInterval = "00:01:00" maxBufferThreads = "1"/>
</bufferModes>
<providers>
<add name = "CriticalMailEventProvider" type = "System.Web.Management.SimpleMailWebEventProvider، System.Web ..." [email protected] [email protected] الأولوية = "عالية" bodyHeader = " تحذير!"
bodyFooter="يرجى التحقيق في أسرع وقت ممكن." subjectPrefix="يتطلب الإجراء." buffer="true" bufferMode="إخطار بالغ الأهمية" maxEventLength="4096" maxSize="4096" maxMessagesPerNotification="1"/>
<add name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider، System.Web ..."
ConnectionStringName = "LocalSqlServer" maxEventDetailsLength = "1073741823" المخزن المؤقت = "صحيح"
bufferMode = "تحليل"/>
</providers>
<eventMappings>
<add name = "All Errors" type = "System.Web.Management.WebBaseErrorEvent، System.Web ..."/>
<add name="أخطاء معالجة الطلب" 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" eventsName = "All Errors" Provider = "SqlWebEventProvider" Profile = "Default"
minInterval = "00:00:30"/>
<add name = "أخطاء معالجة الطلب" eventsName = "أخطاء معالجة الطلب" Provider = "CriticalMailEventProvider" Profile = "Default"/>
</rules>
</healthMonitoring>
في هذا المثال في، استخدم موفر Sql لتسجيل كافة أحداث الخطأ، واستخدم موفر البريد لإرسال رسالة عند تنبيه حدث خطأ طلب الويب.
فيما يلي بعض الأحداث التي تم إصدارها باستخدام 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
استخدام هذه الأحداث لتكوين ملف تعريف للموفر. يمكنك أيضًا إنشاء الأحداث الخاصة بك الموروثة من فئة WebBaseEvent.
لتنبيه حدث ما تلقائيًا، يمكنك استخدام طريقة التنبيه لفئة WebBaseEvent:
حاول
{
//....
}
قبض (استثناء ه)
{
إذا (HealthMonitoringManager.Enabled)
{
WebBaseEvent.Raise(new WebErrorEvent("رسالة الخطأ الخاصة بي", null, 5000, e));
}
}
أو:
إذا (HealthMonitoringManager.Enabled)
{
حدث WebErrorEvent = new WebErrorEvent("رسالة الخطأ الخاصة بي", null, 5000, e);
حدث.رفع();
}