当前位置:  开发笔记 > 编程语言 > 正文

Windows服务启动超时

如何解决《Windows服务启动超时》经验,为你挑选了2个好方法。

有没有办法为每个服务的服务启动超时设置不同的值?我可以使用ServicesPipeTimeout注册表项更改它,但它是每台计算机(http://support.microsoft.com/kb/824344).

目前,我唯一想到的是在不同的线程中完成所有耗时的启动操作.



1> Hinek..:

我同意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
}



2> Rômulo Cecco..:

尽快完成服务的开始是一种很好的做法.所以,在开始状态期间,只做你绝对需要承认它成功开始的事情; 然后做其余的事.如果启动仍然是一个漫长的过程,请定期使用SetServiceStatus通知服务控制管理器您尚未完成,因此它不会使您的服务超时.


请记住,如果还有另一项依赖于您自己的服务,那么一旦发布SERVICE_RUNNING,它可能会期望您的服务完全正常运行.这是在发布SERVICE_RUNNING之前完成_all_初始化的一个很好的理由,并且如果有必要,请使用SetServiceStatus请求更多时间.
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有