2010-05-11 3 views
3

У меня есть служба .net, которая обрабатывает сообщения. Для любых сбоев я использую log4net и пишу в файл. Я добавил для этого приложение SMTP. Проблема в том, что я хочу отправить только одно сообщение, когда что-то пойдет не так. MaxRetries в моем app.config установлен в 5, и это правильно, 5 ошибок регистрируются в файле log4net, но также отправляются 5 электронных писем.как отправить электронную почту, когда maxretries достигнут в nservicebus MSMQ

Есть ли способ получить ручку на максимальных повторениях и запустить мой адрес электронной почты, когда это будет достигнуто?

Благодарим за помощь.

ответ

5

Добавить постоянную конечную точку nservicebus, которая считывает из очереди ошибок. Добавьте обработчик IMessage и внутри этого обработчика добавьте вызов smtpclient.send.

У меня есть пост, который пытается объяснить обработку для систем на основе сообщений об ошибке, которые могут быть интересны: http://andreasohlund.net/2010/03/15/errorhandling-in-a-message-oriented-world/

Hoep это помогает!

+0

Привет, спасибо за ответ. Я уже использую smtpclient send, однако проблема заключается в том, что отправлено 5 электронных писем, если максимальное число попыток установлено равным 5. Я хочу отправить только одно электронное письмо независимо от того, сколько попыток выполняется. – Gilbert

+1

Вот почему вы должны следить за очередью ошибок и отправлять сообщения только при отправке сообщений. Сообщения будут помещены в очередь ошибок после выполнения всех сконфигурированных попыток. Имеет ли это смысл? –

+0

Ах, пенни падает. Спасибо за это, я посмотрю. Cheers. – Gilbert

Смежные вопросы