Я использую ELMAH для моего журнала регистрации проектов ASP.NET MVC, я настроил его так, чтобы он регистрировал исключения в базе данных, но моя проблема заключается в том, что произошло исключение, и пользователь обновляет страницу по любой причине (возможно, думая, что обновляя страницу, страница может стать доступной) при каждом обновлении, одна запись вставляется в базу данных, я боюсь, что это может привести к ее очень большой таблице (я закрыл ELMAH только для сохранения последних 90 дней, но это все равно может стать слишком большим), мне было интересно, есть ли способ ограничить количество занесенных в журнал исключений, входящих в одну и ту же страницу за определенный промежуток времени.Как остановить регистрацию ELMAH с тем же исключением при обновлении?
1
A
ответ
1
В конечном итоге то, что я закончил делать, это запрос к базе данных, и если TimeUtc
последнего исключения составлял менее 5 минут назад, а его сообщение было таким же, как в настоящее время, исключение, я уволил журнал, вот пошаговое руководство о том, что я сделал:
- Сначала установите This package что добавить
ELMAH_Errors
таблицы и объект для запросаELMAH_Errors
таблицы с помощью EF - чем вы можете использовать структуру сущностей для манипулирования
ELMAH_Errors
таблицы
в Global.asax
добавить этот код:
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
using (var context = new ElmahContext())
{
var lastErr = context.ELMAH_Errors.OrderByDescending(m => m.TimeUtc).Take(1).SingleOrDefault();
if (lastErr != null &&
(e.Exception.Message == lastErr.Message && lastErr.TimeUtc > DateTime.UtcNow.AddMinutes(-5)))
{
e.Dismiss();
}
}
Вы также можете добавить этот код для ErrorMail_Filtering
, также здесь another approach, но сделать это таким образом, что независимо от того, что не является ошибкой, и где он занесен в журнал регистрации ELMAH в течение определенного периода времени, мой подход не самый лучший, но он все еще проигрывает получение записи при каждом обновлении.
Смежные вопросы
- 1. Как остановить регистрацию Tomcat?
- 2. Как остановить регистрацию в eventconsumer.log?
- 3. Остановить регистрацию при неправильном вводе: JavaScript
- 4. Остановить uwsgi при обновлении кода
- 5. Как остановить отправить форму при обновлении страницы
- 6. Остановить внедрение с нуля при обновлении
- 7. Выбор группы с тем же значением, но с одним исключением
- 8. Как остановить перезагрузку данных при обновлении Firebase
- 9. Как остановить перезагрузку при обновлении страницы?
- 10. Как остановить эту функцию при обновлении Javascript
- 11. Как остановить «setInterval» и запустить другой с тем же FUNCTION
- 12. Удалить DIV с тем же классом, за исключением одного
- 13. Два оператора try с тем же исключением, что и выражение
- 14. Как остановить регистрацию для наших сотрудников?
- 15. Scandir: проверка файлов с тем же именем (за исключением расширения)
- 16. На домашней странице magento отображается ошибка при обновлении базы данных с тем же именем
- 17. Остановить события внутри делегата с тем же обработчиком
- 18. Подтвердить перед тем, как выполнить регистрацию полос
- 19. Jenkins - Остановить одновременную работу с тем же параметром
- 20. Остановить обновление страницы при обновлении iFrame
- 21. Как остановить регистрацию в клиенте MongoDB Ruby?
- 22. Как остановить регистрацию вызова функции в Firebug?
- 23. Как остановить или отменить регистрацию службы GCMIntentService?
- 24. Остановить PHP от повторных запросов при обновлении
- 25. Ошибка при обновлении с накопителя 11 до накопителя 13 - элемент с тем же ключом уже добавлен
- 26. Как остановить IE от перерисовки при обновлении многих элементов
- 27. Как отменить регистрацию c2dm?
- 28. DockerHub не обновляет временную метку репозитория при обновлении репо, нажатой с тем же тегом
- 29. Как остановить модели перезаписи при обновлении в Backbone.js
- 30. Остановить сафари при показе несохраненной формы при обновлении страницы