Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阻止Windows服务管理器停止服务c#_C#_.net_Windows Services_Wmi - Fatal编程技术网

阻止Windows服务管理器停止服务c#

阻止Windows服务管理器停止服务c#,c#,.net,windows-services,wmi,C#,.net,Windows Services,Wmi,我有一个自定义的windows服务和我自己的注册处理程序,当它从服务管理器接收到停止命令时,如何防止它停止?我在服务和GUI之间建立了管道通信,我只想在GUI中停止它,当我向windows服务发送消息“stop”时,而不是当我试图从windows服务管理器中停止它时。我在C#工作,这能回答你的问题吗 将CanStop属性设置为false。然后,您将需要一个用户可以用来请求停止的应用程序。然后,该应用程序将与您的服务进行通信(可能通过远程处理),如果条件允许,则自行停止。您应该能够通过动态地将“

我有一个自定义的windows服务和我自己的注册处理程序,当它从服务管理器接收到停止命令时,如何防止它停止?我在服务和GUI之间建立了管道通信,我只想在GUI中停止它,当我向windows服务发送消息“stop”时,而不是当我试图从windows服务管理器中停止它时。我在C#

工作,这能回答你的问题吗


将CanStop属性设置为false。然后,您将需要一个用户可以用来请求停止的应用程序。然后,该应用程序将与您的服务进行通信(可能通过远程处理),如果条件允许,则自行停止。您应该能够通过动态地将“CanStop”设置为true,然后使用ServiceController类连接到您自己并发出“Stop”命令来做到这一点。

作为一种替代方法,您可以简单地保护服务设置(修改服务DACL),以便仅使用特殊的用户帐户(可能还有系统)有权在安装期间停止服务并安装此特殊的本地用户帐户


然后,您的控制应用程序可以将标准服务控制管理器功能与此特殊用户的安全令牌一起使用,一切都将按预期工作,而无需执行任何异常操作。

机器关闭时如何?停止服务的命令不是来自服务管理器吗?这不是违背了使用Windows服务的目的吗?我不在乎目的,我只是想这么做。你关闭的想法是对的,没有想过。问题是,我不希望用户停止它,即使它是管理员。我该怎么做?同意你的评论,在桌面上不能阻止stop命令。我删除了我的答案。太好了。正是我要找的东西。