2009-11-24 2 views
4

Existe-t-il un moyen de filtrer les exceptions dans elma en utilisant le message d'exception? Exemples:
"System.Web.HttpException: délai d'attente de la demande". Je ne veux pas filtrer toutes les exceptions HttpException, mais uniquement les demandes expirées.
"System.Web.HttpException: Longueur maximale de la requête dépassée."Filtrer le texte d'exception dans elmah

Ce que je ne veux pas faire est d'écrire son propre code pour cela. Alors, est-ce possible avec la configuration de buildin-web.config?

Merci!

Répondre

11

Oui, vous pouvez. Utilisez simplement une expression régulière pour interroger le message. Voir l'exemple ci-dessous pour plus de détails sur la façon de comparer le message d'exception.

<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> 
+1

Interroger -> interroger. ;) –

+0

Merci @IanGrainger. Le fixe maintenant. –

7

Vous pouvez configurer un gestionnaire d'événements dans votre global.asax pour éviter les paramètres de configuration de regex laid:

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

Voir Error Filtering.