Мы включили Thread.Sleep через пару раз, когда база данных исчезла, и мы вернулись к файлам журналов 3Gb, полным ошибок подключения к базе данных.
Я думаю, что лучшим вариантом было бы сделать так, чтобы ваша система регистрации перехватывала дубликаты, чтобы она могла написать что-то вроде: «Предыдущее сообщение повторялось N раз».
Предположим, я написал стандартную заметку о том, как вы должны открыть свое соединение в самый последний момент и закрыть его при первой же возможности, вместо того, чтобы охватить потенциально огромную функцию, как вы это сделали (но, возможно, это является артефактом вашего демонстрационного кода, и ваше приложение действительно написано правильно).
Когда вы говорите, что сообщаете об описанной вами ошибке, вы имеете в виду, что этот обработчик сообщает об ошибке? Причина, по которой мне не ясно, состоит в том, что во фрагменте кода вы говорите «что-то пошло не так», но вы не сказали этого в своем описании; Я бы не хотел, чтобы это было что-то настолько глупое, так как исключение ловится где-то еще, а код застревает где-то, кроме сна.