2009-10-09 4 views
8

J'utilise ELMAH pour signaler des erreurs dans mes projets ASP.NET. Tout fonctionne très bien, sauf lorsque je débogue un projet, je ne veux pas envoyer un rapport par e-mail aux utilisateurs autorisés. Comment puis-je accomplir cet exploit?Comment activer et désactiver ELMAH dans web.config et dans le code derrière?

+0

pouvez-vous s'il vous plaît nous dire comment vous envoyez des e-mails lorsqu'une erreur se produit? Je suppose que vous utilisez ELMAH pour envoyer des e-mails lorsqu'une erreur se produit. Pouvez-vous nous montrer vos paramètres web.config pour ELMAH? –

Répondre

8

En supposant que vous disposez de différents fichiers web.config pour vos environnements de développement et de production, il vous suffit de désactiver Elmah dans votre fichier web.config de développement. Vous devez commenter (ou supprimer) l'élément Elmah.ErrorLogModule dans la section httpModules.

+2

Je ne suis pas au courant d'un moyen de désactiver ELMAH du code-behind. Vous pouvez cependant utiliser des fichiers web.config spécifiques à la configuration pour les désactiver (ou simplement utiliser un type de journalisation différent) dans votre environnement de développement. Voir le post de ScottGu ici: http://weblogs.asp.net/scottgu/archive/2007/09/21/tip-trick-automating-dev-qa-staging-and-production-web-config-settings-with-vs -2005.aspx –

+0

Il ne fonctionne pas pour commenter ErrorLogModule. Commentaire erreurConnectez-vous à la section elmah! http://stackoverflow.com/a/25394016/2152973 –

5

Vous pouvez peut-être utiliser ErrorFiltering pour désactiver la consignation des e-mails dans Global.asax. Quelque chose comme:

void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e) 
{ 

#if DEBUG 
    e.Dismiss(); 
#endif 

} 
0

Une autre méthode consiste à utiliser la méthode ErrorMail_Mailing. Lorsque ELMAH envoie l'e-mail, il exécute ce premier (quand il est présent dans Global.asax.cs)

public void ErrorMail_Mailing(object sender, ErrorMailEventArgs e) 
{ 
#if DEBUG 
    e.Mail.To.Clear(); 
    e.Mail.To.Add("[email protected]"); 
    e.Mail.Subject = "Error in Development"; 
#endif 
} 

L'exemple ci-dessus peut être par les transformations dans web.Debug.config & web.Release.config. Mais il y a beaucoup plus que vous pouvez faire dans cette méthode. Voir http://scottonwriting.net/sowblog/archive/2011/01/06/customizing-elmah-s-error-emails.aspx

Questions connexes