gpt4 book ai didi

c# - 从 C# 代码停止 Windows 服务不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:52 26 4
gpt4 key购买 nike

我的代码必须停止服务。我正在使用下面的代码:

ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.UseShellExecute = true;
processInfo.FileName = Environment.ExpandEnvironmentVariables("%SystemRoot%") + @"\System32\cmd.exe";
processInfo.Arguments = "sc stop SERVICENAME";
processInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
processInfo.Verb = "runas"; //The process should start with elevated permissions

Process process = new Process() { EnableRaisingEvents = true, StartInfo = processInfo };
process.Start();
process.WaitForExit();

然后我使用以下命令从 CMD 窗口(手动,而不是在我的程序中)检查服务状态:sc SERVICENAME query。但是状态仍然是 RUNNING

当我停止它以管理员身份打开 cmd 并执行相同的命令 (sc stop SERVICENAME) 时,它就正常工作了。

关于为什么它在我的代码中不起作用的任何想法?

最佳答案

对于 C# 和 .NET,最好使用 ServiceController像这样上课:

ServiceController controller = new ServiceController("SERVICENAME");

controller.Stop();

关于c# - 从 C# 代码停止 Windows 服务不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32703126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com