Замораживание консольного приложения .NET Core 3.1 в качестве службы Windows

#.net-core #windows-services

#.net-ядро #windows-службы

Вопрос:

у меня есть консольное приложение, которое отлично работает как задача Windows, оно выполняет длительную задачу каждый час, для выполнения которой может потребоваться от 20 до 50 минут. Но когда я размещаю приложение в качестве службы Windows, оно просто зависает. Это не вызывает никаких ошибок, поток просто, кажется, зависает в совершенно случайное время, что я могу проверить из журналов приложения.

Я уже проверил код и перепробовал все. Каждый асинхронный вызов ожидается, нет .Подождите() или .Результаты. Код отлично работает также при локальном тестировании, эта проблема возникает только при развертывании в качестве службы Windows (я пробовал библиотеки TopShelf и HostedServices, оба не удалось), поэтому я начал думать, что проблема в конфигурации сервера, а не в коде?
Кроме того, одно и то же приложение выполняет 2 другие фоновые задачи, которые не зависают, но выполняются только один раз в день, они выполняются нормально, даже если проблемный поток заморожен.

Любые идеи, которые могли бы помочь мне найти проблему, будут оценены по достоинству.