Les services Windows ne démarrent pas automatiquement après le redémarrage?

10

Nous avons certains services Windows écrits en .NET. Ils démarrent correctement manuellement dans les services mmc, mais bien qu'ils soient définis sur Automatique, ils ne démarrent jamais lors de la mise sous tension (ou du redémarrage) de la machine.

Mise à jour Dans le journal des événements, au lieu de voir "xyz démarré", à côté de tous les autres services démarrant, je vois simplement "Le service xyz est entré dans l'état arrêté." et une erreur distincte qui indique "Un délai d'attente (30000 millisecondes) a été atteint en attendant une réponse de transaction du service slsvc.".

Si je les démarre manuellement, j'obtiens une entrée normale dans le journal des événements comme prévu, et tout va bien - jusqu'au prochain correctif Windows Update qui force un redémarrage et tous les services sont à nouveau désactivés.

Des idées? J'ai essayé de les régler sur Départ différé sans aucune différence apparente.

James Crowley
la source
Une fois, j'ai eu un problème très similaire avec certaines tâches planifiées, que j'ai finalement découvert que je pouvais recréer en changeant le nom d'utilisateur de la tâche exécutée comme après sa création. J'ai trouvé que je pouvais facilement résoudre le problème en supprimant et en recréant simplement les tâches. Cela vaut vraiment la peine d'une approche similaire avec cela - essayez de supprimer le service et de le recréer. Cela peut être utile si vous ne savez pas comment procéder. Pour info, le problème des tâches planifiées ne se produit plus, je suppose qu'une mise à jour à un moment donné l'a corrigé.
DaveRandom
Je me demande s'ils ne parviennent pas à démarrer car ils dépendent d'un autre service (qui n'a pas encore commencé). Êtes-vous en mesure de voir un échec de démarrage du service dans le journal système?
newmanth
@DaveRandom la réinstallation se produit réellement chaque fois que nous déployons une nouvelle version, il ne semble donc pas que la suppression / l'ajout résout malheureusement le problème
James Crowley
@newmanth question mise à jour avec de nouveaux détails - il s'avère qu'il y avait des entrées dans le journal des événements que j'avais manquées
James Crowley
J'ai remarqué dans votre commentaire à la réponse de Rob que .NET est la seule dépendance. Savez-vous si les développeurs ont utilisé des API tierces dans le développement du service? Si oui, peut-être y a-t-il un mécanisme de licence qui est bloqué?
newmanth

Réponses:

3

Il existe un correctif pour cela. Voir: http://support.microsoft.com/kb/922918

Le fait est qu'un service peut nécessiter LDAP ou un autre accès distant et connaît des retards à cause de cela. Cela peut notamment se produire au démarrage du serveur. En prolongeant le délai, vous pouvez vous assurer que le service démarrera.

Il vaudrait mieux, bien entendu, chercher à savoir pourquoi ce service prend autant de temps à démarrer. Votre environnement n'est-il pas trop grand? Avez-vous des problèmes de performances sur un service qui est interrogé par le service retardé pour démarrer?

David Biot
la source
Dans quelle mesure les démarrages de service peuvent-ils être résolus? Existe-t-il un moyen d'activer la journalisation détaillée?
Kenny Evitt
1

Que voulez-vous dire lorsque vous dites "nous avons des services Windows"? Cela me suggère qu'ils sont créés en interne par quelqu'un au sein de votre organisation? Si c'est le cas, vous êtes mieux placé pour les déboguer que quiconque ici - quelles sont les dépendances de ces services sur les composants Windows et vos programmeurs envisagent-ils de tester la disponibilité de ces services et d'attendre qu'ils soient mis en ligne au démarrage de vos services ?

Avez-vous envisagé de définir ces services comme une dépendance du service de licence logicielle (c'est ce qu'est slsvc )?

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

Pour créer une nouvelle dépendance, sélectionnez la sous-clé représentant le service que vous souhaitez retarder, cliquez sur Modifier, puis sur Ajouter une valeur. Créez un nouveau nom de valeur "DependOnService" (sans les guillemets) avec un type de données REG_MULTI_SZ, puis cliquez sur OK. Lorsque la boîte de dialogue Données s'affiche, tapez le nom ou les noms des services que vous préférez démarrer avant ce service avec une entrée pour chaque ligne, puis cliquez sur OK.

Le nom du service que vous entrez dans la boîte de dialogue Données est le nom exact du service tel qu'il apparaît dans le Registre sous la clé Services.

Lorsque l'ordinateur démarre, il utilise cette entrée pour vérifier que le ou les services répertoriés dans cette valeur sont démarrés avant d'essayer de démarrer le service dépendant.

Rob Moir
la source
Merci Rob - ils sont internes - mais la seule dépendance est le framework .NET, qui je ne pense pas qu'il fonctionne comme un service. Il ne nécessite rien d'autre au démarrage ...
James Crowley
0

Essayez avec ceci:

Exécutez la commande suivante pour définir un événement déclencheur qui convient à votre environnement. Dans cet exemple, la commande détermine si une adresse IP est donnée à un hôte, puis elle démarre ou arrête le service.

sc triggerinfo w32time start / networkon stop / networkoff

où w32Time est le nom de votre service

ou essayez ceci

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

Fernando Diaz Toledano
la source