Электронная почта при реализации ошибки - PullRequest
0 голосов
/ 03 августа 2009

Я работал над службой Windows .Net, и мне было интересно, как реализовать отправку электронного сообщения об ошибке изнутри службы. Я развлекался идеей отправить письмо изнутри блока перехвата, но потом вспомнил, что при отправке письма также может быть ошибка, и может возникнуть необработанное исключение. Ребята, вы когда-нибудь работали над чем-то вроде этого. Если да, то какой путь вы выбрали?

Спасибо за любую помощь

Ответы [ 3 ]

2 голосов
/ 03 августа 2009

Посмотрите в log4net (он может делать электронную почту, файл журнала, журнал базы данных) и посмотреть, если это дает вам то, что вы ищете. Это первое, что приходит мне в голову.

1 голос
/ 03 августа 2009

Я не рекомендую подход по электронной почте. Я бы порекомендовал поместить его непосредственно в вашу базу данных отслеживания ошибок, если это вообще возможно. Вам по-прежнему приходится ловить исключения, с которыми вы сталкиваетесь при регистрации, и что-то делать с ними (надеюсь, это не повторится там, где у вас нет вариантов).

Что я делал в прошлом:
... Войдите в базу данных для отслеживания ошибок.
... Вход в журнал событий.
... Войдите в сетевой ресурс.
... Вход на локальный диск.

Редактировать: я должен уточнить, почему я не рекомендую электронную почту. Основная причина заключается в том, что ошибка все равно должна попадать в базу данных, и если вы плохо реализуете «электронная почта при ошибке», ваша электронная почта становится доступной для исключений, которые в какой-то момент в будущем вам могут больше не понадобиться. Даже если вы зашли так далеко, что создали общее электронное письмо, которое указывает на соответствующий почтовый ящик, вы все равно в конечном итоге избегаете того, что вам следует делать в первую очередь - регистрируете его в своей базе данных для отслеживания ошибок.

1 голос
/ 03 августа 2009

Поместите имя для отправки электронной почты в метод global.asax и метод Application_Error. Вы можете получить самое последнее исключение, используя Server.GetLastError ().

Итак, я полагаю, что вы можете отправить электронное письмо, а затем повторно выдать исключение или создать новое исключение с этим внутренним исключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...