0

J'ai actuellement trouvé un problème que l'un de mes projets, qui est un service Windows, s'arrête immédiatement après son démarrage. Ce n'était pas comme ça avant. Pire encore, je n'arrive pas à joindre le service à Visual Studio car il s'est arrêté immédiatement après son démarrage.Comment faire pour déboguer un service Windows buggy qui s'arrête immédiatement après il commence

Mon système est serveur Windows 2012 R2 et Visual Studio est 2013.

Y at-il de toute façon pour moi de déboguer le service?

+0

Le journal des événements (application, sécurité) donne-t-il des indices? – Filburt

+0

Oui, mais le message d'erreur n'a pas beaucoup de sens. Il dit simplement: SimpleInjector.ActivationException. –

Répondre

0

Je viens de trouver une réponse dans MSDN.

https://msdn.microsoft.com/en-us/library/cktt23yw.aspx

Ajoutez le code suivant:

System.Diagnostics.Debugger.Launch(); 

Au début de la méthode OnStart. Ensuite, lancez net start serviceName (les informations d'identification administratives sont nécessaires)

+0

puisque vous avez résolu ce problème, veuillez marquer votre réponse comme la réponse, donc ce serait une bonne solution qui peut aider d'autres membres de la communauté qui rencontrent le même problème que le vôtre :) –

+0

Je le ferai demain (le système ne fonctionne pas permettez-moi de le faire maintenant). –

0

Vous pouvez démarrer le service directement sous le débogueur. Pour ce faire, vous pouvez modifier la commande de démarrage du service (sc config binPath=) ou vous pouvez utiliser GFlags pour modifier l'image de service pour démarrer sous le débogueur. Dans les deux cas, votre débogueur sera en arrière-plan et vous devrez ensuite y accéder à distance.

Mais généralement, vous pouvez résoudre le problème à partir des dumps, le cas échéant. Le simple démarrage du service exécutable à partir du même compte que le service révélera souvent le problème. Enfin, n'oublions pas la puissance de printf

Ajoutez la journalisation et isolez le problème des journaux. Votre service devrait faire cela de toute façon.

+0

Voulez-vous dire que j'ai besoin d'utiliser le fichier bin config config sc dans le fichier binaire sous le dossier de construction Visual Studio, puis commencer le débogage dans Visual Studio? –