سؤال

هل هناك طريقة لتصفية الاستثناءات في Elma باستخدام رسالة الاستثناء؟

أمثلة:
"system.web.httpexception: طلب توقيت الخروج." لا أريد تصفية جميع httpexception ، ولكن فقط طلبات التوقيت.
"System.Web.httpexception: تجاوز طول الطلب الحد الأقصى."

ما لا أريد فعله هو كتابة التعليمات البرمجية الخاصة بذلك. فهل من الممكن القيام بذلك باستخدام تكوين buildin-web.config؟

شكرًا لك!

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

المحلول

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

<errorFilter>
  <test>
    <!-- http://groups.google.com/group/elmah/t/cbe82cee76cc6321 -->
    <and>
      <is-type binding='Exception'
               type='System.Web.HttpException, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' />
      <regex binding='Exception.Message'
             pattern='invalid\s+viewstate'
             caseSensitive='false' />
      <regex binding='Context.Request.UserAgent'
             pattern='Trident/4(\.[0-9])*'
             caseSensitive='false' />
    </and>
  </test>
</errorFilter>

نصائح أخرى

يمكنك إعداد معالج الأحداث في Global.asax لتجنب إعدادات Regex القبيحة:

void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e) 
{     
    if (e.Exception.Message.Contains("Request timed out"))
        e.Dismiss(); 
}

يرى خطأ تصفية.

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