为什么RequestAdditionalTime()方法不能在Vista/7中重启?

Kam*_*eld 7 .net c# windows-services windows-vista windows-7

我一直在对我用C#.Net 3.5编写的Windows服务进行一些广泛的测试.我无法让Windows给我足够的时间让我的服务在我重新启动或关闭计算机时正常关闭,即使我正在调用RequestAdditionalTime()方法,它应该更新SCM并保持我的服务运行.如果我手动停止服务,我的代码可以正常工作.我主要是在Windows Vista和Windows 7中测试此代码,在决定在Windows XP中测试代码时,一切都运行得很好.有谁知道为什么这个电话在Vista/7不起作用?我想我需要某种权限来保持系统不被关闭,我默认在Xp中但不在Vista/7中.

Win*_*mer 6

如果系统没有关闭,您的服务可以请求额外的时间,您的过程不会被杀死.

如果系统正在关闭,则必须关闭服务.您甚至无法获得服务通常获得的正常30秒.关机比以前更有力.

  • 有没有办法知道您关闭或重新启动计算机时服务将关闭的时间?我知道WaitToKillServiceTimeout在W7中设置为12000,在Vista中设置为20000,Xp.但即使你在W7或Vista中更改此值,它几乎没有效果.特别是在Windows 7中,它会在几秒钟内摧毁您的服务.感谢您的见解. (2认同)