У нас есть некоторые службы Windows, написанные на .NET. Они запускаются нормально вручную в сервисах mmc, но, несмотря на то, что для них установлено значение «Автоматически», они никогда не запускаются при включении (или перезагрузке) машины.
Обновить В журнале событий вместо того, чтобы видеть «xyz запущен», наряду со всеми другими запущенными службами, я просто вижу «Служба xyz вошла в остановленное состояние». и отдельная ошибка, которая говорит: «Истекло время ожидания (30000 миллисекунд) при ожидании ответа транзакции от службы slsvc.».
Если я запускаю их вручную, я получаю нормальную запись в журнале событий, как и ожидалось, и все в порядке - до следующего патча Центра обновления Windows, который вызывает перезагрузку и все службы снова не отключаются.
Любые идеи? Я пробовал установить их на отложенный старт без видимой разницы.
Для этого есть исправление. Видеть: http://support.microsoft.com/kb/922918
Дело в том, что службе может потребоваться ldap или другой удаленный доступ, и из-за этого возникают задержки. Особенно это может случиться при запуске сервера. Увеличивая задержку, вы можете гарантировать запуск службы.
Конечно, было бы лучше выяснить, почему эта служба запускается так долго. Ваша среда не имеет большого размера? У вас есть проблемы с производительностью службы, которая опрашивается службой, запуск которой задерживается?
Что вы имеете в виду, когда говорите «у нас есть некоторые службы Windows»? Это наводит на мысль, что они созданы внутри вашей организации? Если это так, то вы в лучшем положении для их отладки, чем кто-либо другой здесь - какие зависимости эти службы имеют от компонентов Windows, и считаются ли ваши программисты проверкой доступности этих служб и ожиданием их подключения к сети при запуске ваших служб ?
Рассматривали ли вы установку этих сервисов как зависимость от сервиса лицензирования программного обеспечения (вот что slsvc является)?
из http://support.microsoft.com/kb/193888
Чтобы создать новую зависимость, выберите подраздел, представляющий службу, которую вы хотите отложить, нажмите «Изменить», а затем нажмите «Добавить значение». Создайте новое имя значения «DependOnService» (без кавычек) с типом данных REG_MULTI_SZ, а затем нажмите OK. Когда появится диалоговое окно «Данные», введите имя или имена служб, которые вы предпочитаете запускать перед этой службой, с одной записью для каждой строки, а затем нажмите «ОК».
Имя службы, которое вы должны ввести в диалоговом окне «Данные», - это точное имя службы, отображаемое в реестре в разделе «Службы».
Когда компьютер запускается, он использует эту запись для проверки того, что служба или службы, перечисленные в этом значении, запущены, прежде чем пытаться запустить зависимую службу.
Попробуйте с этим:
Выполните следующую команду, чтобы определить событие триггера, подходящее для вашей среды. В этом примере команда определяет, присвоен ли IP-адрес узлу, а затем запускает или останавливает службу.
sc triggerinfo w32time start / networkon stop / networkoff
где w32Time - имя вашей службы
или попробуйте это