Какое время ожидания для запуска службы Windows? - PullRequest
9 голосов
/ 21 июля 2009

Я развернул свою службу Windows (используя независимый класс установщика и SC.EXE), но я получаю сообщение об ошибке при попытке его запустить:

---------------------------
Services
---------------------------
Could not start the MyName service on Local Computer.



Error 1053: The service did not respond to the start or control request in a timely fashion.

Какой тайм-аут? Это было похоже на 3 секунды. Что мне нужно делать, если мой сервис занимает больше времени?

Ответы [ 4 ]

15 голосов
/ 21 июля 2009

В вашем классе обслуживания используйте ServiceBase.RequestAdditionalTime() в вашем методе OnStart / OnStop:

// request an additional 4 seconds to complete the operation
RequestAdditionalTime(4000);  
13 голосов
/ 21 июля 2009

Обычный способ создания службы - заставить код запуска создать новый поток и запустить службу в этом потоке.

Запуск службы должен быть почти мгновенным - не что иное, как создание нового потока с вашей «реальной» работой.

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

2 голосов
/ 21 июля 2009

Что касается конкретного вопроса, точное время ожидания варьируется, но составляет менее 30 секунд. Вы можете контролировать время ожидания запуска службы по умолчанию через раздел реестра, вы можете увидеть, как это сделать здесь

Однако я согласен со многими другими, что я рассмотрю два возможных варианта.

  1. Запустите ваш сервис как можно скорее, создайте поток и т. Д.
  2. Если вы не можете использовать первый вариант, вы можете использовать RequestAdditionalTime (). Просто не забудьте сделать этот звонок рано.
1 голос
/ 10 октября 2011

Кроме того, если вы тестировали службу в разных физических средах, и кажется, что проблема не в обычном времени запуска, а в производительности ПК. Вы можете увеличить время ожидания для раздела реестра для конкретного компьютера.

Пожалуйста, смотрите: http://support.microsoft.com/kb/839803

Привет

...