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


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

Mettre à 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 seulement "Le service xyz est entré à l'état arrêté". et une erreur distincte indiquant "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, une entrée normale dans le journal des événements se présente normalement, comme prévu, et tout va bien - jusqu'au prochain correctif Windows Update qui impose un redémarrage et tous les services sont à nouveau désactivés.

Des idées? J'ai essayé de les mettre en mode départ différé sans différence apparente.


10
2018-01-04 14:24


origine


Une fois, j’ai eu un problème très similaire avec certaines tâches planifiées, que j’ai découvert par la suite que je pouvais recréer en modifiant le nom d’utilisateur de la tâche exécutée après sa création. J'ai trouvé que je pouvais facilement résoudre le problème en supprimant simplement et en recréant les tâches. Ceci vaut certainement une approche similaire: essayez de supprimer le service et de le recréer. Ce peut aider si vous ne savez pas comment faire cela. Pour votre information, le problème des tâches planifiées ne se produit plus, je suppose que certaines mises à jour l'ont corrigé à un moment donné. - DaveRandom
Je me demande s'ils ne parviennent pas à démarrer car ils dépendent d'un autre service (qui n'a pas encore démarré). Pouvez-vous 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ésolve le problème malheureusement - James Crowley
@newmanth question mise à jour avec quelques nouveaux détails - il s'avère qu'il y avait des entrées du 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 lors du développement du service? Si tel est le cas, il existe peut-être un mécanisme de licence qui est bloqué? - newmanth


Réponses:


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

Le problème, c’est qu’un service peut nécessiter un LDAP ou un autre accès distant, ce qui entraîne des retards. Cela peut notamment arriver au démarrage du serveur. En prolongeant le délai, vous pouvez vous assurer que le service va commencer.

Mieux vaut, bien sûr, expliquer pourquoi ce service prend si longtemps à démarrer. Votre environnement est-il unersized? Avez-vous des problèmes de performances sur un service qui est interrogé par le retard du service?


3
2017-08-24 07:46



Comment spécifiquement les démarrages de service peuvent-ils être résolus? Existe-t-il un moyen d'activer la journalisation détaillée? - Kenny Evitt


Que voulez-vous dire quand vous dites "nous avons des services Windows"? Cela me suggère-t-il qu'ils sont créés en interne par quelqu'un au sein de votre organisation? Dans ce cas, vous êtes mieux placé que quiconque pour les déboguer. Quelles dépendances de ces services ont-ils sur les composants Windows? Vos programmeurs sont-ils censés tester la disponibilité de ces services et 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 que slsvc est)?

de 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 apparaît, 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 saisiriez 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 de tenter de démarrer le service dépendant.


1
2018-01-16 10:16



Merci Rob - ils sont internes - mais la seule dépendance est le framework .NET, qui, à mon avis, ne fonctionne pas en tant que service. Cela ne nécessite rien d'autre au démarrage ... - James Crowley


Essayez avec ceci:

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

sc triggerinfo w32time démarrer / réseau sur arrêt / réseau désactivé

où w32Time est le nom de votre service

ou essayez ceci

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


0
2017-10-06 06:29