Как служба Windows запускает приложение через стандартный интервал?

Консультант настраивает службу Windows для запуска приложения. Приложение должно запускаться каждые 15 минут. Приложение вообще не работает, и служба работает нормально.

Я не знаком с тем, как приложение будет запускаться со стандартным интервалом при работе в качестве службы.

Служба использует инструмент SRVANY.EXE.


person FortunateDuke    schedule 24.02.2009    source источник


Ответы (4)


Любой «консультант», который настраивает запуск службы с использованием SRVANY.EXE, должен быть уволен. SRVANY — неудачный хак, от которого следовало отказаться десять лет назад; его никогда не следует использовать в производственной среде.

Если единственной целью службы является запуск приложения по расписанию, то ее вообще не должно быть. Запустите приложение как запланированную задачу. Если у него есть другая функциональность, то перепишите его как настоящий сервис. Если это достаточно хорошо написано, это должно быть довольно легкое преобразование.

person Stephen Martin    schedule 24.02.2009

Есть много потенциальных проблем с вашим приложением.

SRVANY.EXE превращает любое приложение в службу Windows. Если это приложение когда-либо запросит ввод данных пользователем, оно зависнет. Вам нужно будет убедиться, что приложение, работающее как служба, не делает ничего, кроме запуска другого приложения.

Вы также должны иметь возможность запускать «стартовое» приложение вручную вне службы Windows. Если он по-прежнему не работает должным образом, вы знаете, что это не связано с запуском в качестве службы.

person Dave Swersky    schedule 24.02.2009

Чтобы добавить к другим ответам: см. KB137890, что на самом деле делает SRVANY.EXE и как найти какое приложение запущено.

Мне кажется, что вам было бы лучше (если вы можете) настроить запланированную задачу, которая запускает каждое приложение каждые 15 минут, если вы можете.

person Andrew Cox    schedule 24.02.2009

Я не уверен, правильно ли это, но я считаю, что один из способов запуска приложения - это просто иметь поток внутри OnStart и настроить его на запуск приложения с интервалом в 15 минут.

person CodeMonkey    schedule 24.02.2009