我有一个Windows服务,现在我正在尝试调试它。尽管当前代码曾经可用,但现在它无法启动。错误信息为:
Windows无法在本地计算机上启动MyService服务
错误1053:该服务未能按时响应启动或控制请求。
为了隔离错误,我试图将所有内容都注释掉。主要方法看起来像这样:
TextWriter tt = new StreamWriter(@"C:\startup.text", true);
tt.WriteLine("Starting up the service");
tt.Close();
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyService()
};
TextWriter tt2 = new StreamWriter(@"C:\startup.text", true);
tt2.WriteLine("Run...");
tt2.Close();
它将"Starting up the service"和"Run..."都打印到日志文件中。我也清空了MyService的内部内容。在任何代码周围都有try/catch,现在被缩减为像上面那样的一些日志行。我从未进入过catch语句,否则会记录它。
OnStart中的所有内容都已被注释掉:
protected override void OnStart(string[] args)
{
}
我已经没有什么想法了。我认为错误是因为Start方法从未完成(或者在30秒内完成)。是否有其他方法被调用?欢迎提出任何想法。
额外信息: MyService中的构造函数为空。如果插入一些Thread.Sleep(5000)语句,则需要更长时间才能弹出关于错误1053的消息。Main方法似乎必须退出(没有错误)。