2016-04-07 102 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

相关问题