Зачем проходить через все затраты и страдания от устранения неполадок и обслуживания службы Windows для приложения, основанного на времени / опросе? ОС Windows имеет встроенную поддержку для этого. Просто создайте простое консольное приложение. Запустите его как запланированное задание.
У вас уже должны быть модульные тесты и разделение, чтобы сделать код модульно-тестируемым. Если вы этого не сделаете, устранение неполадок будет слишком сложным. Если у вас есть код в этом формате для тестирования модулей, переключение в консольное приложение не составляет труда.
Я знал парня, который сделал все для Windows и назвал его SOA. Накапливание служб Windows для механизмов опроса / времени не является SOA. Он настолько неаккуратен по сравнению с консольными приложениями и так сложен в обслуживании, что даже не могу выразить, насколько это плохая идея. Мне пришлось иметь дело с ~ 20-30 из этих выигрышных сервисов, и как только они были преобразованы в n-ярусное и консольное приложение, внезапно стабильность приложения пошла вверх и моя жизнь стала в 10 раз легче. Поэтому, пожалуйста, сделайте себе одолжение и послушайте кого-то, кто прошел через месяцы и много итераций этих типов приложений. Запустите его как запланированное задание в консольном приложении.