我正试图从以管理员身份运行的程序向我的服务TestService发送命令,我可以很好地启动/停止它,但每当我尝试执行命令((时,我都会遇到异常:
无法控制计算机"."上的服务。
try
{
System.ServiceProcess.ServiceController service = new System.ServiceProcess.ServiceController("TestService");
if (service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running);
}
service.ExecuteCommand(100); // Causes Exception every time
}
catch (Exception e)
{
MessageBox.Show(e.Message);
throw e;
}
之所以会发生这种情况,是因为ExecuteCommand只接受整数:128-256,128以下的任何值都是系统保留的,并且由于传递了100,因此会发生异常。
用类似service.ExecuteCommand(130)
的东西替换service.ExecuteCommand(100)
会很好。