J'ai lu l'article de MSDN sur le sujet. Je cite :
Parce qu'un service doit être exécuté à partir de dans le contexte de l'interface Services plutôt qu'à partir de Visual Studio, le débogage d'un service dans Visual Studio, le débogage d'un n'est pas aussi simple que le débogage d'un autre service de Visual Studio. [ ] de Visual Studio. Pour déboguer un service, vous devez démarrer le service, puis attacher un débogueur au processus dans lequel dans lequel il s'exécute. Vous pouvez ensuite déboguer votre application en utilisant toutes les fonctionnalités de débogage standard de Visual Studio.
Mon problème est que mon service ne démarre pas. Tout d'abord, il se bloque et dit :
Une exception non gérée (System.Runtime.InteropServices.COMException) s'est produite dans NomService.exe[3596])
et me propose de le déboguer (l'instance de débogage se bloque instantanément lorsque je choisis l'une d'entre elles). Ensuite, le message suivant apparaît
C sur l'ordinateur local. Erreur 1053 : Le service n'a pas répondu à à la demande de démarrage ou de contrôle en temps voulu
Alors, comment puis-je rechercher/déboguer la raison pour laquelle mon service ne démarre pas ? Le problème est que j'ai créé une application console qui fait EXACTEMENT ce que le service fait et cela fonctionne bien. (Je veux dire que j'ai juste copié le fichier OnStart
() et le contenu de la boucle principale à main).
Toute aide serait appréciée.
Le service est écrit en C# avec une forte utilisation de l'interopérabilité. J'utilise VS2008
2 votes
Avez-vous consulté l'observateur d'événements ?
0 votes
Pouvez-vous afficher le code source de votre méthode OnStart() ?
0 votes
Cela peut s'avérer utile (selon le type de service) : codeproject.com/KB/dotnet/DebugWinServices.aspx
0 votes
@Rick : c'est un énorme projet, le OnStart appelle des méthodes qui en appellent d'autres, etc. Je ne peux pas le poster. Mais je dois mentionner que le même service avec le même code a fonctionné correctement lorsqu'il a été compilé et installé avec VS2003.
0 votes
@DumbCoder : Je viens de le faire. Merci. Bel utilitaire. Mais je n'y ai rien trouvé d'intéressant. J'ai suivi l'ID de l'événement et, comme suggéré, j'ai vérifié le code de retour du service, qui était 0... donc cela ne me dit rien.
0 votes
Avez-vous essayé d'attraper l'exception et d'imprimer le résultat ?
0 votes
@Dan : Comment attraper l'exception ? Je veux dire où ?
0 votes
@Armen Voir ma réponse pour la capture des exceptions
0 votes
@Armen : Avez-vous réussi à faire fonctionner ce système ? Vous n'avez jamais indiqué si vous avez réussi à faire fonctionner ce système ou quels sont les problèmes que vous rencontrez encore. Mise à jour ?
0 votes
@Davido : Non, mais je n'ai pas encore eu l'occasion de vérifier les conseils. Je le ferai cette semaine...
0 votes
J'ai expliqué comment déboguer dans un autre fil de discussion : stackoverflow.com/a/50743601/521326