2010-10-18 7 views
1

Cela semble probablement fou, mais c'est un vrai problème: j'ai un service Windows fourni par ISV que je ne peux pas changer. Il y a un bug dans le service où il ne "nettoie" pas certaines données qu'il devrait au démarrage. Pour contourner le problème, jusqu'à ce que le fournisseur puisse corriger le bogue, j'aimerais que le processus ou le script soit toujours exécuté juste avant le démarrage de ce service. Par exemple: Je pourrais créer un deuxième service de «moniteur» lié au service de problème avec une dépendance de service. Le deuxième service effectuera cette solution de contournement/nettoyage avant que le service de problème est autorisé à démarrer. Mais cela ressemble à un marteau de la solution à un problème simple. Quelqu'un d'autre a des idées pour une solution plus simple?Comment puis-je faire exécuter du code externe avant le démarrage d'un service Windows?

Le code de solution de contournement est trivial et peut, par exemple, figurer dans un script PowerShell.

Répondre

1

Créez un nouveau service qui fait ce dont vous avez besoin, puis forcez un dependency dessus.

0

Vous devriez consulter notre Service Protector application qui peut exécuter un script de pré-démarrage avant de commencer un autre service. Cela peut aussi être exagéré, mais parfois il est préférable d'acheter un utilitaire ciblé plutôt que d'investir votre temps de programmation dans une solution unique/jetable.

Dans tous les cas, votre solution d'écrire un autre service et faire appliquer une dépendance devrait faire l'affaire, à condition que votre nouveau service ne se déclare pas comme « commencer » qu'après avoir terminé ses travaux de nettoyage. Sinon, Windows peut démarrer votre vrai service trop tôt.

Bonne chance.

Questions connexes