2016-04-07 35 views
-2

小さなサービスプログラムを作成しましたが、起動しません。 それは単独でインストールしますが、自動起動では持っていません。 Windows 7,64ビットシステムです。サービスを開始できません。Visual Studioで作成されたエラー1053 c#

サービスで見つかったサービスを右クリックして起動すると、約30秒後にエラー1053でタイムアウトします。

私はプログラムをリリースしていますが、デバッグはしていません。 ローカル管理者としてインストールを試み、すべてをローカル管理者として実行します。 OnStart()メソッドとOnStop()メソッドはコードなしで空であるため、削除するためにすべて削除しました。 OnStart()の開始時に私が知っている小さなロギングアクションを入れようとしましたが(インストールが成功したときにログファイルを作成するために使用しますが)、それは決して届きません。

ヘルプ?

編集:ここでは

は私のProgram.csのコードです:ここで

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

は私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 
      } 
     } 
    } 
} 

は私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

コードを入力できますか? – Vladimir

+0

空白のサービスでも失敗しますか?それは奇妙に聞こえる。すべてのコードを表示できますか? – BugFinder

+0

編集された投稿。しかし、ええ、それは空です。 – user3242113

答えて

0

あなたが01を見つけたようですとなっていましたが、その半分しか追跡されませんでした。そうでないと - だから、ServiceManagerサービスが開始されている知っているようではないでしょう

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

あなたの現在のmain()コードはサービスにあなたがそれを起動しようとするたびにインストールされます。

サービスを開始、インストール、アンインストール、またはデバッグするかどうかは、main()で決める必要があります。コマンドライン引数を使用するのが一般的です。引数が指定されていない場合は、「サービスを開始する」という意味です。

これを行う方法は、そのチュートリアルにも示されています。

+0

以前はサービスと一緒に働いたことはありません。ありがとう! – user3242113

+0

問題はありませんが、初めてのことです。新しい技術について学ぶときは、多くの説明なしにコピー可能なコードを示すチュートリアルに従うのではなく、基本的な原則に慣れ親しむためにドキュメントを読むことが本当に役に立ちます。 – CodeCaster

関連する問題