Как заставить внешний код запускаться до запуска службы Windows? - PullRequest
1 голос
/ 18 октября 2010

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

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

Например: я мог бы создать вторую службу «монитор», которая связана с проблемой службы с зависимостью службы. Второй сервис выполнит этот обходной путь / очистку, прежде чем разрешить запуск проблемного сервиса. Но это похоже на кувалду решения простой проблемы. У кого-нибудь еще есть идеи для более простого решения?

Код обходного пути тривиален и может находиться, например, в скрипте PowerShell.

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Создайте новый сервис , который делает то, что вам нужно, затем установите для него зависимость .

0 голосов
/ 04 ноября 2010

Вам следует обратиться к нашему приложению Service Protector , которое может запустить сценарий предварительного запуска перед запуском другой службы. Это тоже может быть излишним, но иногда лучше приобрести целевую утилиту, чем тратить время на программирование на одноразовое решение.

В любом случае, ваше решение по написанию другой службы и обеспечению зависимости должно работать, при условии, что ваша новая служба не объявляет себя «запущенной» до тех пор, пока не завершит свою работу по очистке . В противном случае Windows может запустить ваш реальный сервис слишком рано.

Удачи.

...