Послуги Windows не запускаються автоматично після перезавантаження?


10

У нас є кілька служб Windows, написаних у .NET. Вони запускаються добре вручну в межах сервісу mmc, але, незважаючи на встановлення на Автоматичне, вони ніколи не починаються при включенні (або перезавантаженні) машини.

Оновлення У журналі подій замість того, щоб побачити "xyz запущено", поряд з усіма іншими запущеними службами, я просто бачу "Служба xyz увійшла в стан, що зупинився". і окрема помилка, яка говорить "Час очікування (30000 мілісекунд) був досягнутий під час очікування відповіді на транзакцію від служби slsvc.".

Якщо я їх запускаю вручну, то я отримую нормальний запис у журналі подій, як очікувалося, і все добре - до наступного виправлення оновлення Windows, яке змусить перезавантажити і всі служби знову вимкнено.

Будь-які ідеї? Я намагався встановити їх на «Затримка старту» без видимої різниці.


У мене колись була дуже схожа проблема з деякими запланованими завданнями, які я врешті-решт виявив, що міг відтворити, змінивши ім'я користувача, яке виконується як після його створення. Я виявив, що міг легко усунути проблему, просто видаливши та створивши завдання. Однозначно варто подібний підхід із цим - спробуйте видалити службу та відтворити її. Це може допомогти, якщо ви не впевнені, як це зробити. FYI, проблема із запланованими завданнями більше не виникає, я думаю, якесь оновлення в якийсь момент виправило її.
DaveRandom

Мені цікаво, чи не запускають вони, оскільки вони залежать від іншої послуги (яка ще не почалася). Чи можете ви побачити помилку запуску послуги в системному журналі?
новонароджений

@DaveRandom перевстановлення насправді відбувається кожного разу, коли ми розгортаємо нову версію, тому не видається, що видалення / додавання вирішує проблему, на жаль,
Джеймс Кроулі

Питання @newmanth оновлено новими деталями - виявляється, що я пропустив записи журналу подій
Джеймс Кроулі

Я помітив у вашому коментарі до відповіді Роба, що .NET є єдиною залежністю. Чи знаєте ви, чи розробники використовували сторонні API в розробці сервісу? Якщо так, можливо, існує якийсь механізм ліцензування, який блокується?
новонароджений

Відповіді:


3

Для цього є виправлення. Дивіться: http://support.microsoft.com/kb/922918

Справа в тому, що сервіс може вимагати ldap або іншого віддаленого доступу через те, що через це виникають затримки. Особливо це може статися при запуску сервера. Подовживши затримку, ви можете забезпечити запуск послуги.

Краще, звичайно, буде вирішити проблему, чому ця послуга займає так багато часу. Твоє середовище малоцінне? У вас виникли проблеми з продуктивністю служби, яка опитується службою, яка затримується до запуску?


Наскільки конкретно можуть бути запущені сервісні проблеми? Чи є якийсь спосіб увімкнути детальний журнал?
Кенні Евітт

1

Що ви маєте на увазі, говорячи "у нас є деякі служби Windows"? Що підказує мені, що вони створені всередині когось у вашій організації? Якщо так, то ви зможете налагодити їх, ніж тут хто-небудь інший - які залежності мають ці служби від компонентів Windows, і чи вважають ваші програмісти тестування на доступність цих служб і чекають, коли вони з’являться в Інтернеті, коли ваші послуги запускаються. ?

Чи розглядали ви налаштування цих служб як залежність від сервісу ліцензування програмного забезпечення (ось що таке slsvc )?

з http://support.microsoft.com/kb/193888

Щоб створити нову залежність, виберіть підрозділ, який представляє послугу, яку ви хочете затримати, натисніть «Змінити» та натисніть «Додати значення». Створіть нову назву значення "DependOnService" (без лапок) з типом даних REG_MULTI_SZ і натисніть кнопку ОК. Коли з'явиться діалогове вікно "Дані", введіть ім'я або назви служб, які ви бажаєте запустити перед цією службою, одним записом для кожного рядка та натисніть кнопку ОК.

Назва послуги, яку ви ввели в діалоговому вікні "Дані", - це точна назва служби, яка відображається в реєстрі під клавішею Служби.

Коли комп'ютер запускається, він використовує цей запис для перевірки того, що послуга або послуги, зазначені в цьому значенні, запущені перед спробою запуску залежної служби.


Дякую Роб - вони є внутрішніми, - але єдина залежність - це .NET Framework, який, я не вважаю, працює як послуга. Він не вимагає нічого іншого при запуску ...
Джеймс Кроулі

0

Спробуйте з цим:

Виконайте наступну команду, щоб визначити подію тригера, що відповідає вашому середовищу. У цьому прикладі команда визначає, чи надається хост IP-адреси, а потім вона запускає або зупиняє службу.

sc триггер info w32time start / networkon stop / networkoff

де w32Time - ваша послуга

або спробуйте це

https://support.microsoft.com/en-us/kb/922918

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.