У меня есть служба Windows .Net / c # 2.0. Точка входа обернута в блок try catch, который уведомляет меня о проблемах и позволяет службе продолжать работу в обычном режиме, но когда я просматриваю журнал событий приложения сервера, я вижу ряд ошибок «EventType clr20r3», которые приводят к смерти службы неожиданно. Блок catch имеет «catch (Exception ex)» и не перебрасывает исключение.
Каждая команда sql имеет тип «CommandType.StoredProcedure» и выполняется с SqlDataReader's. Эти вызовы sproc работают правильно 99% времени, и все они были тщательно протестированы, профилированы и проверены. Я дополнительно упаковал эти вызовы в блоки try catch, чтобы быть уверенным, и все еще испытываю эти необработанные исключения.
Это только в нашей производственной среде и не может быть продублировано в наших средах разработки или подготовки (даже при большой нагрузке).
Почему моя обработка ошибок не уловила эту конкретную ошибку? Есть ли способ уловить больше деталей относительно первопричины проблемы?
Вот пример журнала событий:
EventType clr20r3, P1 RDC.OrderProcessorService,
P2 1.0.0.0,
P3 4ae6a0d0,
P4 system.data,
P5 2.0.0.0, P6 4889deaf,
P7 2490,
P8 2c,
P9 system.data.sqlclient.sql,
P10 NIL.
Дополнительно
The Order Processor service terminated unexpectedly.
It has done this 1 time(s).
The following corrective action will be taken in 60000 milliseconds:
Restart the service.