C# ServiceController-Can';Don’不要停止服务
我在这里读了很多有类似问题的帖子,但没有一篇能帮我解决问题。 我想用ServiceController对象停止服务。但它失败了,我得到一个异常:System.ComponentModel.Win32Exception(0x80004005)。我不明白为什么。。我用“以管理员身份运行”来运行程序 如果我从代码中调用netstop命令,那么一切都正常。为什么?C# ServiceController-Can';Don’不要停止服务,c#,service,servicecontroller,C#,Service,Servicecontroller,我在这里读了很多有类似问题的帖子,但没有一篇能帮我解决问题。 我想用ServiceController对象停止服务。但它失败了,我得到一个异常:System.ComponentModel.Win32Exception(0x80004005)。我不明白为什么。。我用“以管理员身份运行”来运行程序 如果我从代码中调用netstop命令,那么一切都正常。为什么? Process cmd = new Process(); cmd.StartInfo.FileName = "cmd.exe"; cmd.
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine("net stop service_name");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
在我们继续进行聊天讨论后,发现以下内容:
能够ServiceController
服务,但不能启动
停止
- 从系统日志可以明显看出,ServiceController在尝试停止时崩溃
服务控制器
&启动
与其他服务(如停止
打印后台处理程序
- 使用
或CMD
我们可以通过Process.Start
sc停止“servicename”
- 最后,问题在于服务本身及其构造方式
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine("net stop service_name");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();