Вы упоминали, что запускаете функциональность Quartz внутри службы Windows.
Я предполагаю, что вы используете что-то, наследующее ScheduleService, следовательно, переопределяете методы OnStop () и OnStart (args () как String), и я предполагаю, что у вас есть расписание, задания и триггеры, зарегистрированные внутри метода OnStart службы.
Если это так, убедитесь, что вы не разрешаете сборщику мусора "чистить" ваши объекты.
Gc.KeepAlive(object)
Например, давайте представим, что у нас внутри OnStart System.Timers.Timer для службы Windows. Мы должны были бы сказать сборщику мусора оставить таймер один, предварительно определив таймер на уровне класса (как переменную объекта, а не как локальную переменную функции)
Private timer As System.Timers.Timer
.. и внутри OnStart ()
timer As System.Timers.Timertimer = New System.Timers.Timer()
AddHandler timer.Elapsed, AddressOf Tick 'here you define that Tick method will handle it
timer.Enabled = true
timer.Interval = 200000
GC.KeepAlive(timer) 'tell the GC to leave alone the timer
Так может быть что-то похожее с вашей реализацией Quartz?