Я ненавижу задавать подобные вопросы - они такие неопределенные ... и неопределимые, но здесь идет.
Справочная информация:
У меня есть DLL, которая является внутренним приложением, которое является синхронизированным процессом. Мой таймер получает конфигурацию для интервала, в котором он работает, и делегата, который должен быть запущен по истечении интервала. У меня есть другая DLL, которая содержит процесс, который я внедряю.
Я создал два приложения, одно Windows Service и одно консольное приложение. Каждое из приложений считывает свой собственный файл конфигурации и загружает одни и те же библиотеки, нажимая настроенный интервал таймера, и делегирует в мой класс процессов с синхронизацией.
Проблема:
Вчера и в течение последних n недель все работало нормально в нашей производственной среде с использованием службы Windows. Сегодня служба Windows будет работать в течение 20-30 минут и зависает (с интервалом таймера 30 секунд), но консольное приложение работает без проблем и работает в течение последних 4 часов. Подробная регистрация не указывает на какой-либо сбой. Как будто служба Windows просто ... тихо умирает - не останавливаясь.
Учитывая, что мои службы Windows и консольные приложения работают точно так же, я могу только думать, что есть что-то, что приводит к зависанию процесса службы Windows - но я понятия не имею, что может быть причиной этого. Я проверил файлы конфигурации, и они оба идентичны - я даже скопировал и вставил содержимое одного в другой, чтобы быть уверенным. Без кубиков.
Может ли кто-нибудь высказать соображения о том, что может вызвать зависание службы Windows, если консольное приложение, использующее те же базовые библиотеки, этого не делает; или кто-то может указать мне в направлении инструментов, которые позволят мне диагностировать, что может быть причиной этой проблемы?
Спасибо всем за помощь - продолжаю копать.