Кто-либо знает о хорошем способе ограничить количество электронных писем, посланных Elmah в течение периода времени как Вы, может с медицинским Контролем?
Я хочу быть в состоянии ограничить электронные письма для каждой ошибки от каждой страницы только до электронного письма раз в час или так для той конкретной ошибки и страницы.
При рассмотрении elmah документации это похоже на использование:
void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{
// perform filtering here
}
в global.ascx файле могла бы быть опция. Я мог установить статический объект на приложение, которое содержит некоторых детали ошибки и зарегистрированное время, и проверьте его и отмените уведомление по электронной почте в случае необходимости?
У кого-либо есть лучшее решение или пример того, что они используют теперь?
Этот кодеплексный проект ASP.NET Exception Reporting, который является оберткой для Elmah, выглядит многообещающе. http://aspexceptionreporter.codeplex.com/
У меня возникла похожая проблема и я решил использовать для ELMAH метод log-to-SQL. Я использовал SQLExpress 2008 (бесплатную версию) на своем веб-сервере, а затем настроил SQL Reporting на отправку дайджестовых сообщений по электронной почте каждое утро.
Этот метод не требовал никакого кодирования, только настройка SQL сервера и служб отчетов. Преимущество этого метода заключается в том, что он позволяет вам запускать отчеты по месяцам журналов ошибок, а не просто просматривать их ежедневно. Кроме того, вы можете планировать отчеты так часто, как вам удобно.
Вики-страница ELMAH содержит информацию о том, как настроить web.config для указания на SQL-сервер. Есть много вариантов для получения данных, как только данные находятся в SQL, но я нахожу, что службы отчетов SQL Express идеально подходят для моих нужд.
Не знаю, есть ли у Elmah такая возможность (в документах об этом не упоминается), но у ASP.NET есть мониторинг здоровья: http://aspnet.4guysfromrolla.com/articles/032107-1.aspx
В конце концов, я написал свою собственную систему регистрации событий, уведомлений и развертывания для CMS... Я хэширую след стека каждого исключения и использую его для "сворачивания" похожих событий (веб-приложение может получить тысячи исключений менее чем за секунду, если что-то пойдет не так).
Я настроил период уведомления на 1 день - каждый день я получаю уведомление только о первой ошибке. Последний экземпляр ошибки всегда сохраняется, но старые экземпляры 'очищаются' до последних 20 или около того, в зависимости от частоты, etc.....
Она интегрируется с системой аутентификации, поэтому администраторы/разработчики получают "входящие" сообщения о событиях, на которые они подписаны, и могут просматривать отладочную информацию в реальном времени, при этом не позволяя неаутентифицированным пользователям видеть отладочную информацию вообще.
Очень мило... А так как она является общей, она работает и для не-террористических событий, таких как публикации, уведомления об изменениях пользователей и т.д..
Мне любопытно, не заинтересует ли кого-нибудь такая система, представленная в виде библиотеки?