Elmah SQL Error معالج قاعدة بيانات غير متوفرة - ماذا يحدث لتسجيل الدخول؟

StackOverflow https://stackoverflow.com/questions/758092

  •  09-09-2019
  •  | 
  •  

سؤال

أقوم باختبار Elmah وقم بإيقاف تشغيل اتصال قاعدة البيانات بشكل متعمد لتسجيل الدخول في طلبي لمعرفة ما سيحدث في الإنتاج إذا كان DB غير متوفر.

يبدو أن المهد لا يستطيع فخ أخطائه - ملف AXD غير متوفر عند فشل سجل قاعدة بيانات SQL.

ما هو السلوك المقصود لهاح إذا كانت قاعدة البيانات غير متوفرة؟

كيف يمكنني تشخيص أخطائي إذا حدث هذا؟

هل كانت مفيدة؟

المحلول

ليس متأكدا حقا من إيماه، لكن السلوك المتوقع لهذه أطر التسجيل لا يرمي أي استثناءات إذا حدث خطأ ما في ذلك. أي إذا كانت قاعدة بيانات المهد لأسفل، فستفترض أنها لن تسجل الأخطاء إلى قاعدة البيانات.

كما هو مقترح أعلاه، يمكنك استخدام المصارف البديلة - البريد الإلكتروني أو الملف المسطح.

نصائح أخرى

يبدو أن المحة لا تستطيع فخ أخطتها الخاصة

إيماه يفعل أخطائها الخاصة إلى حد ما. إذا كان ErrorLogModule يواجه استثناء أثناء محاولة تسجيل الخطأ، ثم يتم إرسال الاستثناء الناتج عن التسجيل إلى مرفق تتبع .NET Framework القياسي. يرى خط 123 من 1.0 مصادر. راجع أيضا المشي التالية من وثائق ASP.NET للحصول على تتبع Standard .NET Framework التي تعمل مع Tracing ASP.NET:

Walkthrough: دمج ASP.NET تتبع مع System.Diagnostics تتبع

ملف AXD غير متوفر عند فشل سجل قاعدة بيانات SQL.

هذا صحيح. يجب أن يكون اتصال قاعدة بيانات SQL Server وظيفيا لعرض الأخطاء المخزنة في قاعدة بيانات SQL Server عند استخدامها SqlErrorLog.

ما هو السلوك المقصود لهاح إذا كانت قاعدة البيانات غير متوفرة؟

إذا، على سبيل المثال، فإن قاعدة بيانات SQL Server منخفضة، SqlException سيحدث أثناء تسجيل الدخول. إيماه سوف ترسل بعد ذلك SqlException محتوى الكائنات إلى منشأة تتبع .NET Framework القياسية.

كيف يمكنني تشخيص أخطائي إذا حدث هذا؟

الخيار الأفضل هنا هو أيضا تمكين التسجيل و البريد الإلكتروني للأخطاء. إذا كانت قاعدة البيانات معطلة، فحسن أن تكون بوابة البريد وستظل قد تم إخطار الأخطاء. الأخطاء، سارية، تسجيل الدخول في بعض علبة البريد (ES). هذا يحتوي أيضا على ميزة إضافية أنه إذا كانت بوابة البريد لأسفل، فستكون الفرص هي أن قاعدة البيانات ستتناول وأخطاء ستحصل على تسجيل الدخول هناك. إذا انخفض كلاهما، فستحتاج إلى مراجعة البنية التحتية لإنتاجك بجدية وربما اتخاذ تدابير لرصد صحة نظامك عبر تدابير إضافية.

يمكنك دائما استخدام خيار ملف XML لتسجيل أخطتك.

أعتقد أنك خلط السياقات قليلا.

سلوك Elmah إذا لم تكن قاعدة البيانات غير متوفرة، فلا تسجل أخطاء إلى قاعدة البيانات. إذا تم إلقاء استثناء على الخادم أو إذا قمت برفع استثناء عبر ErrorSignal, ، سوف تسمح العلم في ذلك باستثناء شاشة صفراء أو صفحة أخطاء مخصصة (الإعداد الخاص بك).

نظرا لأن صفحة الأخطاء. لا يمكن الوصول إليها فقط لأولئك الذين يجب أن يروا ذلك (من الناحية المثالية،) على ما يرام تقديم هذا الخطأ للمستخدم.

خلاصة أسفل هو أنه إذا كانت قاعدة بيانات الأخطاء قد توقفت، فلا يمكنك تشخيص الأخطاء. بالنسبة لنا، إذا كانت هذه هي الحالة، فلدينا مشاكل أكبر منذ أن تجلس قاعدة بيانات الخطأ مع قاعدة بيانات الإنتاج.


أود أيضا الدعوة ضد استخدام تسجيل XML لمصدر التسجيل الأساسي الخاص بك. سيقدم لك SQL Server أفضل أداء دون الحاجة إلى إدارة الملفات. مع تسجيل XML هذا ليس هو الحال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top