我有一个自定义窗口服务我自己注册的处理程序,我怎么能阻止它,当它从服务管理器接收到停止命令停止? 我建立了服务和GUI之间的管道沟通,我想只能从GUI停止它,当我发送的窗口服务的消息“停止”不是当我尝试从Windows服务管理器停止它。 我工作在C#
Answer 1:
这回答了你的问题了吗?
http://bytes.com/topic/c-sharp/answers/444965-prevent-service-stopping
设置CanStop属性设置为false。 然后,你需要的是,用户可以使用请求停止的应用程序。 然后这个应用程序将与您的服务进行通信(通过远程,也许),如果条件允许,自行停止。 您应该能够通过“CanStop”动态设置为true,那么连接到自己与ServiceController的类,并发出“停止”命令来做到这一点。
Answer 2:
作为替代,你可以简单地固定服务设置(修改服务DACL),使得只有特殊的用户帐户(也许SYSTEM)有权利停止服务和安装过程中安装这个特殊的本地用户帐户。
然后,您的控制应用程序可以使用标准的服务控制管理器的功能与这个特殊用户的安全令牌,一切都将如预期,而无需做任何不寻常的。
文章来源: Prevent Windows service manager from stopping a service c#