Certains services s’arrêtent automatiquement s’ils ne sont pas utilisés par d’autres services

Erreur “Certains services s’arrêtent automatiquement s’ils ne sont pas utilisés par d’autres services” en essayant de démarrer un service Windows.

J’ai un service qui n’utilise pas le fichier de configuration du service Windows et utilise des propriétés statiques – ça marche bien

Maintenant, j’utilise le fichier app.config et reconstruis mon projet d’installation + le projet de service. Maintenant, j’installe le service et essaye de démarrer le service – j’obtiens l’erreur suivante:

Certains services s’arrêtent automatiquement s’ils ne sont pas utilisés par d’autres services

Le service se connecte en tant que système local.

Toute consortingbution est la bienvenue s’il vous plaît! Merci.

Ceci est généralement le résultat de l’une des deux choses suivantes: (a) votre méthode OnStart() lance une exception ou (b) la méthode OnStart() ne déclenche pas un thread pour effectuer le travail.

Si le problème est (a), la solution évidente consiste à déboguer le service pour identifier ce qui ne va pas. Au minimum, placez un bloc try-catch autour du contenu de la méthode OnStart() et enregistrez une erreur dans le journal des événements système lorsqu’une exception se produit. Ensuite, vous pouvez voir les détails dans l’observateur d’événements Windows.

Si le problème est (b), vous devez créer un thread qui fait quelque chose. Le thread doit être un thread de premier plan (par opposition à un thread d’arrière-plan) pour empêcher le service de s’arrêter. Une méthode OnStart() typique ressemble à ceci:

 private System.Threading.Thread _thread; protected override void OnStart(ssortingng[] args) { try { // Uncomment this line to debug... //System.Diagnostics.Debugger.Break(); // Create the thread object that will do the service's work. _thread = new System.Threading.Thread(DoWork); // Start the thread. _thread.Start(); // Log an event to indicate successful start. EventLog.WriteEntry("Successful start.", EventLogEntryType.Information); } catch (Exception ex) { // Log the exception. EventLog.WriteEntry(ex.Message, EventLogEntryType.Error); } } private void DoWork() { // Do the service work here... } 

J’ai eu cette erreur et c’était parce que le disque dur s’était rempli. Cela pourrait être tout ce qui empêche le service de fonctionner.

J’ai eu la même erreur qui était due à la création de DLL lors de l’exécution de installUtil.cmd sur mon serviceInstaller.msi. Pour résoudre ce problème, je devais inclure l’un de ces => pour chaque DLL que j’attendais dans mon projet et placez-le dans mon fichier Service.wxs. Comme ceci => *here* . Et assurez-vous que tous les fichiers dll sont inclus dans les commandes d’installation x

J’espère que cela t’aides!