服务控制管理器(SCM)对服务的方法调用有什么保证?
它是否能保证不会出现类似的情况?
到目前为止,我发现的最好的引用似乎表明这些保证确实已经完成,但是我发现的文档中唯一的引用非常模糊,所以我正在试图找到一个更好的引用。
下面是MSDN论坛上的一个线程,它说SCM确保状态是一致的,或者“至少我从未发现如果服务没有运行或暂停,SCM发送停止请求的情况可能发生”。
到目前为止,我在文档中找到了最好的参考:
这些方法OnStart/OnStop/等等表示服务在其生命周期中经过的状态;服务从一种状态过渡到下一种状态。例如,在调用OnContinue命令之前,您永远不会得到响应OnStart命令的服务。
发布于 2013-10-15 21:20:06
Michael在MSDN论坛上为这个问题提供了一个好的答案,该论坛引用了Win32 API,其中记录了SCM将如何响应无效的控制代码(以各种方式拒绝它们)。
只有当SCM认为服务处于适当的状态并假定服务说它可以处理状态(暂停/继续)时,才会调用状态更改方法。
有关服务如何工作的更多信息,请参考Win32文档。
https://stackoverflow.com/questions/18432827
复制相似问题