Запуск службы через Octhell PowerShell не удается из-за тайм-аута - PullRequest
1 голос
/ 19 февраля 2020

Я хочу развернуть созданное мной приложение и пытаюсь запустить его через Octopus. Этот исполняемый файл является просто приложением. net, которое использует Topshelf для запуска в качестве службы windows. Однако это не просто служба Windows, как было сказано, это всего лишь приложение, использующее Topshelf. То, как я запускаю этот исполняемый файл через осьминога, это просто запуск exe-файла. Ничего, кроме строки скрипта, вызывающей этот exe. К сожалению, я получаю следующую ошибку:

Служба YourTestService не запустилась из-за следующей ошибки: Служба не ответила на запрос запуска или управления своевременно. Время ожидания (30000 миллисекунд) истекло при ожидании подключения службы YourTestService.

Действительно, если моя служба запускается вручную, она занимает чуть больше 1 минуты.

При чтении здесь Я вижу, что это происходит, потому что я пытаюсь запустить .exe через скрипт powershell, и политика заключается в том, что по умолчанию установлен тайм-аут 20 секунд (в соответствии с тем, что написано в этом решении, но в моем случае это время ожидания составляет 30 секунд).

Итак, я вижу 2 возможных решения:

1) каким-то образом увеличить политику времени ожидания

2) запустить exe в Octopus: не использую мой собственный скрипт powershell.

Может кто-нибудь помочь случайно?

1 Ответ

0 голосов
/ 03 апреля 2020

Я использую System.Threading.Timer и интервал во всех моих службах. Я пытаюсь сделать метод System.ServiceProcess.ServiceBase.OnStart() очень легковесным, который просто инициализирует базовые компоненты. Все мои услуги запускаются в течение нескольких секунд.

Если в вашем случае это невозможно, вы можете переопределить тайм-аут по умолчанию в реестре:

Поддержка Microsoft

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...