Domanda

C'è un modo per filtrare le eccezioni in Elma utilizzando il messaggio di eccezione?

Esempi:
"System.Web.HttpException: Richiesta scaduta." Non voglio per filtrare tutti HttpException, ma soltanto le richieste scaduta.
"System.Web.HttpException: Lunghezza massima richiesta superata".

Quello che non voglio fare è scrivere proprio codice per questo. Quindi è possibile farlo con la configurazione buildin-web.config?

Grazie!

È stato utile?

Soluzione

Sì, è possibile. Basta usare un'espressione regolare per interrogare il messaggio. Vedere l'esempio sotto per i dettagli su come confrontare il messaggio di eccezione.

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

Altri suggerimenti

È possibile impostare un gestore di eventi nel tuo Global.asax per evitare impostazioni regex brutto di configurazione:

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

Errore Filtering .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top