我一直在做一些我一直在用C#.Net 3.5编写的Windows服务的广泛testing。 即使我正在调用RequestAdditionalTime()方法,它应该更新SCM并保持我的服务正在运行,但在重新启动或closures计算机时,我无法让Windows为我的服务提供足够的时间来正常closures服务。 但是,如果我手动停止服务,我的代码正常工作。 我主要是在Windows Vista和Windows 7中testing这个代码,决定在Windows XP中testing代码时,一切正常。 有谁知道为什么这个电话不能在Vista / 7中工作? 我想我需要一些权限,以防止系统closures,我在默认情况下在XP中,而不是在Vista / 7中。
帮助修复C#中的错误“引用或失败参数必须是可赋值的”
在Windows中比在Linux中慢的端口监听?
如何在Linux上使用fsharpc访问Nuget中的.dll
以编程方式监视磁盘活动(Windows)
如果系统没有关闭,你的服务可以要求额外的时间,你的过程不会被杀死。
如果系统关闭,您的服务必须关闭。 你甚至没有得到正常的服务30秒。 关机比以前更强大。
在非关闭情况下,RequestAdditionalTime()必须比每2分钟更频繁一次调用:
protected override void OnStop() { Thread.Sleep(60000); RequestAdditionalTime(180000); Thread.Sleep(60000); RequestAdditionalTime(180000); Thread.Sleep(5000); }
Simon Buchan的答案中的2分钟链接是在这里提到我的微软: http : //connect.microsoft.com/VisualStudio/Feedback/details/96460/servicebase-requestadditionaltime-has-no-impact-on-start-timeout
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。