2010-05-11 4 views
3

J'ai un service .net qui traite les messages. Pour toute erreur, j'utilise log4net et j'écris dans un fichier. J'ai ajouté un appender SMTP pour cela. Le problème est que je veux seulement envoyer un email quand quelque chose ne va pas. Le MaxRetries dans mon app.config est fixé à 5 et c'est correct, 5 erreurs sont enregistrées dans le fichier log4net mais 5 e-mails sont également envoyés.comment envoyer un courrier électronique lorsque maxretries atteint dans nservicebus MSMQ

Y a-t-il un moyen de maîtriser le nombre maximum de tentatives et de déclencher mon courrier électronique lorsque cela est atteint?

Merci pour votre aide.

Répondre

5

Ajoutez un point de terminaison nservicebus standard qui lit à partir de la file d'attente d'erreurs. Ajoutez un gestionnaire pour IMessage et, dans ce gestionnaire, ajoutez un appel à smtpclient.send.

J'ai un poste qui tente d'expliquer la gestion des erreurs pour les systèmes à base de messages qui pourraient intéresser: http://andreasohlund.net/2010/03/15/errorhandling-in-a-message-oriented-world/

Hoep cela aide!

+0

Salut, merci pour la réponse. J'utilise déjà smtpclient send mais le problème est que 5 emails sont envoyés si le nombre maximum de tentatives est fixé à 5. Je veux envoyer un seul email quel que soit le nombre de tentatives effectuées. – Gilbert

+1

C'est pourquoi vous devriez surveiller la file d'erreurs et envoyer seulement les emails quand des messages y sont placés. Les messages seront placés dans la file d'attente d'erreurs après que toutes les tentatives configurées ont été effectuées. Cela a-t-il du sens? –

+0

Ah, le penny tombe. Merci pour ça, je vais jeter un coup d'oeil. Cheers. – Gilbert

Questions connexes