这个问题似乎被广泛讨论,但我有发现在我的具体情况解决问题。
我的服务设置下运行Local System
帐户。 我第一次机安装了Windows 7 SP1(64位),按预期工作的一切。 可是,就在我尝试我的第二个机与Windows Server 2008 R2 SP1(64位),甚至不是第二个遍上启动该服务,而我面对这个恼人的错误:
Windows could not start the ProService service on Local Computer
Error 1053: The service did not respond to the start or control request in a timely fashion
该System Log
显示2项:
The ProService service failed to start due to the following error:
The service did not respond to the start or control request in a timely fashion.
和:
A timeout was reached (30000 milliseconds) while waiting for the ProService service to connect.
实现看起来如下:
Program.cs中:
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
ServiceBase.Run(new ServiceBase[] { new ProService() });
}
static void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
if (e != null && e.ExceptionObject != null)
{
Logger.Record(e.ExceptionObject);
}
}
ProService.cs:
public ProService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
try
{
RequestAdditionalTime(10000);
FireStarter.Instance.Execute();
}
catch (Exception e)
{
Logger.Record(e);
throw;
}
}
该OnStart
方法刚开始一个新的线程,所以它几乎不需要花时间负载执行。 我用RequestAdditionalTime
声明以防万一-拒绝这件事情是我的问题的根源。 此外,你可以看到,我处理所有的异常,但没有例外的是在启动过程中写到我的定制服务事件日志(顺便说一句:日志记录工作的第一win7的机器上)。 如何调查这是怎么回事?