有没有办法为每个服务的服务启动超时设置不同的值?我可以使用ServicesPipeTimeout注册表项更改它,但它是每台计算机(http://support.microsoft.com/kb/824344).
目前,我唯一想到的是在不同的线程中完成所有耗时的启动操作.
我同意Romulo尽快开始服务.但是,如果您需要时间并且使用的是.NET Framework 2.0或更高版本,则可以考虑使用ServiceBase.RequestAdditionalTime()方法.
http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.requestadditionaltime.aspx
protected override void OnStart()
{
this.RequestAdditionalTime(10000);
// do your stuff
}
尽快完成服务的开始是一种很好的做法.所以,在开始状态期间,只做你绝对需要承认它成功开始的事情; 然后做其余的事.如果启动仍然是一个漫长的过程,请定期使用SetServiceStatus通知服务控制管理器您尚未完成,因此它不会使您的服务超时.