2016-04-07 3 views
-2

J'ai donc fait un petit programme de service, mais il ne démarre pas. Il s'installe tout seul, mais je ne l'ai pas en démarrage automatique. C'est sur un système Windows 7, 64 bits.Impossible de démarrer le service, erreur 1053, faite dans Visual Studio, C#

Lorsque je le trouve dans Services, faites un clic droit sur le service et le faire démarrer, il expire avec l'erreur 1053 après environ 30 secondes. Je lance le programme en tant que version et non en débogage. J'ai essayé d'installer en tant qu'administrateur local et de tout faire en tant qu'administrateur local. Les méthodes OnStart() et OnStop() sont vides sans code, j'ai tout supprimé pour éliminer ce qu'il pourrait être. Essayé de mettre une petite action de journalisation que je sais fonctionne (je l'utilise pour créer un fichier journal lorsque l'installation est réussie) au démarrage de OnStart() mais il ne l'atteint jamais.

Aide?

Edit:

Voici mon code Program.cs:

namespace TestService 
{ 
    static class Program 
    { 
     // The main entry point for the application. 
     static void Main() 
     { 
      //Install self 
      SelfInstaller.InstallMe(); 
     } 
    } 
} 

Voici mes Library.cs:

namespace TestService 
{ 
    //Library to store public methods 
    public static class Library 
    { 
     //Method to write to a logfile 
     public static void WriteLogFile(string Message) 
     { 
      StreamWriter sw = null; 
      try 
      { 
       sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\Logfile.txt", true); 
       sw.WriteLine(DateTime.Now.ToString() + ": " + Message.ToString()); 
       sw.Flush(); 
       sw.Close(); 
      } 
      catch 
      { 
       //empty 
      } 
     } 
    } 
} 

Voici mes Service1.cs:

namespace TestService 
{ 
    public partial class Service1 : ServiceBase 
    { 

     //Initialize 
     public Service1() 
     { 
      InitializeComponent(); 
     } 

     //On service start 
     protected override void OnStart(string[] args) 
     { 
     } 

     //On service stop 
     protected override void OnStop() 
     { 
     } 
    } 
} 
+0

pouvez-vous fournir votre code? – Vladimir

+0

Donc, même un service vide échoue? cela semble étrange .. pouvez-vous montrer tout votre code? – BugFinder

+0

Article modifié. Mais ouais, c'est vide. – user3242113

Répondre

0

Il semble que vous ayez trouvé un tutorial mais a suivi seulement la moitié de celui-ci.

Votre actuelle main() code installer le service chaque fois que vous essayez de le démarrer:

static void Main() 
{ 
    //Install self 
    SelfInstaller.InstallMe(); 
} 

donc qui ne laisse pas le ServiceManager savoir que le service a été lancé - comme il est.

Vous devez décider, au main(), si vous voulez démarrer, installer, désinstaller ou déboguer le service. Il est courant de le faire en utilisant des arguments de ligne de commande, où aucun argument fourni ne signifie "démarrer le service".

Comment faire cela est également montré dans ce tutoriel même.

+0

Jamais travaillé avec un service avant, maintenant je me sens stupide. Merci! – user3242113

+0

Pas de problème, il y a une première fois pour tout. Lorsque vous découvrez une nouvelle technologie, il est très utile de lire la documentation pour vous familiariser avec les principes de base, au lieu de suivre un didacticiel qui présente un code pouvant être copié sans trop d'explications. – CodeCaster