微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

强制Windows在closures时等待服务停止

我有一个问题,我无法弄清楚我用C#编写的Windows服务。 我想要做的就是等待一个特定的时间,让一个subprocess终止,然后我被迫杀掉它并停止服务。 我已经设置了超时时间5到15秒,我的服务等待适当的时间,然后杀死孩子,当我通过mmc服务窗口停止时停止。 但是,如果我closures电脑,我的服务就会被吹走,然后才能够正常地等待和停止。 我已经读过Windows允许超时30秒的服务closures之前,它吹走了。 我的代码执行的时间less于30秒,最大值大约是20秒左右,这取决于我设置的超时时间。

我已经尝试在win32 Api中使用SetServiceStatus()函数,但它没有改变代码的function。 我已经validation函数调用成功。 有没有其他办法来强制Windows等待我的服务正常关机? 我正在testing它在Windows 7 x86和Windows Vista Sp1 x86。

如何以编程方式跟随.lnk文件

将节点添加到树视图中的特定父节点(c#)

如果在.NET中validation文件的签名是否存储在系统的目录存储中?

在启动/使用.NET Win-Forms EXE的同时,.NET .NET Windwos Service以本地系统身份运行WCF服务

仅在Linux Core上运行时存储错误

Windows 不会让任何服务阻止关机,这是通过设计。 正如久里所说,你必须为你的应用考虑一个不同的设计。

这是一个全球Windows设置,显然: http : //support.microsoft.com/kb/305788 。 如果我不得不依靠用户关闭服务,我会担心的。 我会定期保存我的数据。

OnSTart和OnSTop是从一个基础类继承而来的,这对你来说确实有一些帮助。 你所有的这些方法的实现应该是启动或停止你的客户端代码,Windows将完成剩下的工作。

我会告诉这个事实,我使用C#和.Net的ServiceBase的实现做到这一点,我不能谈论C / C ++代码或API的权威性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐