يوفر ASP.NET 2.0 أيضًا مراقبة كاملة المواصفات للتطبيقات ومراقبة صحتها. يتكون النظام من نموذج حدث قابل للتوسعة بالكامل ومحرك حدث يمكنه إرسال الأحداث إلى مجموعة متنوعة من أجهزة الاستقبال. على سبيل المثال، يمكنك تكوين تطبيق ASP.NET الخاص بك لإرسال بريد إلكتروني يومي يشير إلى أن الخادم قيد التشغيل ويتضمن مقدار الذاكرة المتوفرة. وبالمثل، يمكنك إنشاء حدث صحي مرتبط باستثناء لم تتم معالجته. يمكن إرسال محتوى الاستثناء ورؤوس الطلب والوقت والتاريخ إلى قاعدة بيانات تسجيل الأخطاء.
يتضمن ASP.NET 2.0 أحداثًا مضمنة، بما في ذلك نبضات القلب وأحداث عمر التطبيق (بدء/إيقاف/ترجمة) وأحداث تعويض الأخطاء (الاستثناءات غير المعالجة). ومع ذلك، يمكنك بسهولة البناء على هذه الفئات الأساسية لإعادة إنشاء الأحداث الخاصة بك ورفعها من تطبيقك. على سبيل المثال، يمكنك إنشاء حدث مخصص لتسجيله عندما يقوم المستخدم المائة بالنقر فوق رابط معين.
الميزة القوية حقًا لنظام مراقبة الصحة ASP.NET 2.0 هي أنه قابل للتكوين بالكامل من خلال ملفات web.config وmachine.config. باستخدام XML العادي، يمكنك تعريف الأحداث وتحديد الموفرين (مستقبلي الأحداث) وإرسال أحداث معينة إلى موفري خدمات محددين.
إنشاء الأحداث الأحداث متشابهة في البنية مع الاستثناءات. بمعنى آخر، لا تحتوي فئة الحدث نفسها تقريبًا على أي وظيفة باستثناء كونها حاوية للرسائل. فيما يتعلق بمراقبة الصحة، ترث كافة الأحداث من System.Web.Management.WebBaseEvent. ومع ذلك، يمكنك أيضًا الاشتقاق من الفئات الأساسية عالية المستوى المستخدمة لأغراض متخصصة، مثل جمع بيانات طلب HTTP أو معالجة الاستثناءات.
القائمة 4. الأحداث المخصصة
باستخدام النظام؛
باستخدام System.Web.Management؛
الفئة العامة CustomEvent: WebBaseEvent
{
public const int EventCode = WebEventCodes.WebExtenedBase + 10;
MyEvent العامة (رسالة سلسلة، مصدر حدث الكائن)
: قاعدة (رسالة، مصدر الحدث، رمز الحدث)
{ }
}
الجزء الأكثر أهمية في إنشاء حدث مخصص هو توفير رمز حدث فريد. كافة رموز الأحداث المضمنة موجودة في تعداد WebEventCodes. يجب أن تحتوي الأحداث المخصصة على أرقام تبدأ من WebEventCodes.WebExtenedBase + 1. بخلاف ذلك، فإن المهمة الشائعة الوحيدة في إنشاء أحداث مخصصة هي تهيئة الحدث بشكل صحيح.
استخدام الأحداث على الرغم من تنشيط الأحداث المضمنة تلقائيًا، إلا أنه يمكنك إضافة تعليمات برمجية إلى تطبيقك لتشغيل الأحداث المخصصة في أي وقت.
القائمة 5. رفع حدث
<script runat="server">
باطلة Page_Load (مرسل الكائن، EventArgs e)
{ // رفع حدث مخصص MyEvent myEvent =
new MyEvent("تحميل صفحة نموذج أحداث الويب"، this);
</script>
عند رفع حدث من صفحة ASP.NET، ما عليك سوى إنشاء مثيل جديد للحدث ثم تنفيذ أسلوب Raise(). تقوم طريقة Raise() تلقائيًا بتسليم مثيل الحدث إلى محرك مراقبة السلامة. يقوم المحرك بعد ذلك بتعيين الحدث إلى الملفات الشخصية والموفرين ويسلم الحدث إلى الموفر الصحيح. يقوم الموفر في النهاية بتسليم الحدث إلى المتلقي الصحيح.
تكوين مراقبة الصحة يتم تكوين مراقبة الصحة في منطقة جديدة في ملف Machine.Config أو Web.Config. يمكنك تكوين القسم لإعداد نبضات ويب على الويب والتي تقدم تقارير دورية عن حالة التطبيق. يمكنك أيضًا تكوين التطبيق الخاص بك لإنشاء الأحداث وتمرير الأحداث عبر موفري الخدمة المختلفين.
يجب أن تحدد أحداث التكوين كل حدث في منطقة تعيين الأحداث. يتم تحديد الأحداث بواسطة اسم فريد ونوع كامل. يتم استخدام اسم الحدث كرابط في منطقة القواعد.
القائمة 6. منطقة تعيين الأحداث
<!-- تحدد تعيينات الأحداث الأحداث التي تتم مراقبتها -->
<eventMappings>
<add name="SampleWebRequests"
اكتب = "Samples.AspNet.SampleWebRequestEvent، SampleWebRequestEvent،
الإصدار=0.0.0.0، الثقافة=محايدة، PublicKeyToken=f0c63b9a560d5e5a"/>
</eventMappings>
يأتي ASP.NET 2.0 مزودًا بالعديد من الأحداث المضمنة، والتي تم تكوينها بالأسماء التالية:
• كافة الأحداث. تلتقط كافة أسماء الأحداث أي WebBaseEvent. تعد فئة الأحداث هذه بمثابة تغطية شاملة لكل حدث يتم التقاطه بواسطة نظام مراقبة الصحة.
• نبضات القلب. تستخدم أحداث Heartbeat WebHeartBeatEvent لتقديم إعلامات دورية حول حالة تطبيق الويب.
• أحداث عمر التطبيق. تتضمن أحداث عمر التطبيق بدء التطبيق وإيقافه وإعادة ترجمة جزء من التطبيق أو كله. تعتمد هذه الأحداث على WebApplicationLifetimeEvent وتُبلغ عن التاريخ والوقت والحالة الحالية عند حدوث الحدث الدائم.
• كافة الأخطاء. تقوم فئة "كل الأخطاء" بجمع أي حالات شاذة أو أخطاء يكتشفها النظام. تستند هذه الأحداث إلى WebBaseErrorEvent.
• أخطاء في البنية التحتية. استخدم WebErrorEvent لاكتشاف الأخطاء المتعلقة بوقت تشغيل ASP.NET أو IIS. تعتبر هذه الأحداث فئات فرعية لجميع فئات الأخطاء وهي ذات صلة بشكل أساسي بمسؤولي النظام وليس بمطوري التطبيقات.
• خطأ في معالجة الطلب. يؤدي أي خطأ أو استثناء يحدث أثناء الطلب إلى تشغيل WebRequestErrorEvent. يقوم هذا الحدث بتسجيل الطلب الوارد والأخطاء المرتبطة بمعالجة الطلب. تعد أخطاء معالجة الطلب أيضًا مجموعة فرعية من جميع فئات الأخطاء.
• جميع التقييمات. يمكنك استخدام نظام مراقبة السلامة لتوفير محاولات التدقيق من خلال WebAuditEvents. يسجل هذا الحدث تلقائيًا إجراءات المستخدمين النشطين في تطبيق الويب. إذا كنت تستخدم انتحال الهوية، فستساعدك أحداث التدقيق في تتبع من يستخدم تطبيقك وكيفية استخدامه.
• تدقيق الفشل. WebFailureAuditEvent هو نوع حدث تدقيق خاص يتم تشغيله عندما يحاول المستخدم تسجيل الدخول إلى موقع الويب الخاص بك باستخدام اسم مستخدم أو كلمة مرور غير صالحة. يحدث هذا الحدث أيضًا عندما لا يمكن مصادقة مستخدم للمورد المحدد.
• مراجعة ناجحة. WebSuccessAuditEvent هو النظير لحدث الفشل الذي يحدث عندما يقوم المستخدم بالمصادقة أو تنفيذ إجراء آخر يتطلب تسجيل التدقيق.
من السهل إنشاء الأحداث المخصصة، على الرغم من أنه يجب عليك إضافة تعليمات برمجية إلى التطبيق الخاص بك لرفع الحدث.
تكوين الموفرين يجب أن يتم تسجيل كل موفر في ملف التكوين. يتطلب تسجيل الموفر الاسم والنوع الفريدين للتطبيق. يحتوي هذا النوع على الاسم القوي الكامل لفئة الموفر الفعلي. يتم استخدام اسم الموفر كرابط في منطقة القواعد.
القائمة 7. الموفر
<healthMonitoring Enabled="true" heartBeatInterval="0">
<!-- يربط الموفرون الأحداث الصحية بأهداف مختلفة مثل البريد الإلكتروني WMI أو SMTP -->
<المقدمون>
<إضافة اسم = "WmiEventProvider" نوع = "System.Web.Management.WebWmiEventProvider،
System.Web,Version=1.2.3400.0,Culture=محايد، PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
يأتي ASP.NET 2.0 مزودًا بموفري خدمات WMI وWindows Event Monitor والبريد الإلكتروني SMTP وقواعد بيانات SQL Server. من خلال توسيع الفئة الأساسية الصحيحة، يمكنك إنشاء موفري خدمات مخصصين للاتصال بمستقبلات الأحداث الأخرى.
تعيين الأحداث لموفري الخدمة
الخطوة الأخيرة في تكوين مراقبة السلامة هي ربط الأحداث بموفري الخدمة بالقواعد. توفر القواعد رابطًا بين اسم الحدث الجيد وفئة الحدث والموفر وملف تعريف الحدث أو فئته. يمكنك أيضًا استخدام القواعد لتحديد الحد الأدنى للفاصل الزمني لتشغيل أحداث معينة.
القائمة 8. القواعد
<!-- تربط القواعد الأحداث بالموفرين والملفات الشخصية، وتحدد الفواصل الزمنية للتحقق من الأحداث -->
<القواعد>
<add name="أحداث قاعدة البيانات المخصصة" eventsName="CustomDBEvents"
موفر = "WmiEventProvider" الملف الشخصي = "قاعدة البيانات" minInterval = "00:01:00" />
<add name="طلبات الويب القياسية" eventsName="جميع الأحداث"
موفر = "SqlEventProvider" الملف الشخصي = "افتراضي" minInterval = "00:01:00" /> </rules>
</المراقبة الصحية>
تؤدي القواعد عدة مهام مختلفة تم تكوينها بواسطة خصائص مختلفة:
• الاسم. اسم القاعدة هو الاسم المألوف الذي يظهر عند إرسال الحدث إلى المتلقي.
• اسم الحدث. يقوم EventName بتعيين حدث تم تكوينه في المنطقة.
• المزود . الموفر هو رابط للموفر الذي تم تكوينه في المنطقة. سيتم تسليم أي أحداث تطابق هذه القاعدة من خلال هذا الموفر إلى الأهداف التي يدعمها هذا الموفر. على سبيل المثال، System.Web.Management.SqlWebEventProvider يكتب الأحداث تلقائيًا إلى قاعدة بيانات SQL Server.
• حساب تعريفي. يستخدم الموفرون المختلفون خصائص ملف التعريف كمرشحات لعرض الأحداث. على سبيل المثال، قد يرسل موفر البريد الإلكتروني رسالة فورية لأي حدث باستخدام ملف تعريف "عاجل"، ولكنه قد يرسل أيضًا بريدًا إلكترونيًا يوميًا فقط يحتوي على مجموعة من أحداث الملف الشخصي "الروتينية" لذلك اليوم.
• الحد الأدنى. يجب إطلاق بعض الأحداث، مثل نبضات القلب، خلال أقصر فترة زمنية ممكنة. يمكنك استخدام هذه الخاصية لتعيين الحد الأدنى للفاصل الزمني للحدث.
تسمح لك منطقة التكوين هذه بإعداد العديد من الأحداث المتعلقة بالصحة وتعيين الأحداث لمقدمي الخدمة المختلفين. على سبيل المثال، يمكنك إعداد نبضات ترسل حدث WMI كل 10 دقائق. وبالمثل، يمكنك إعداد تنبيه عبر البريد الإلكتروني لأي استثناءات لم يتم اكتشافها.
مقالات ذات صلة:
http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B893664
http://blog.csdn.net/dshpsky/archive/2006/06/18/810893.aspx