2016-04-07 103 views
-2

所以我做了一個小服務程序,但它不會啓動。 它自己安裝,但我沒有在自動啓動。 這是一個Windows 7,64位系統。無法啓動服務,錯誤1053,在Visual Studio中,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

看起來好像你發現了一個tutorial但隨後只有一半。

您當前main()代碼將每次嘗試啓動它安裝服務:

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

這樣不會讓的ServiceManager知道服務已經啓動 - 因爲它不是。

您需要在main()中決定是否要啓動,安裝,卸載或調試服務。使用命令行參數這樣做很常見,其中沒有提供任何參數意味着「啓動服務」。

如何做到這一點也顯示在該教程中。

+0

以前從來沒有使用過服務,現在我只是覺得很愚蠢。謝謝! – user3242113

+0

沒問題,一切都是第一次。在瞭解新技術時,閱讀文檔以熟悉核心原則非常有幫助,而不是遵循教程,該教程不需要太多解釋即可呈現可複製粘貼的代碼。 – CodeCaster

相關問題