c# - ServiceController 异常(无法控制计算机“.”上的服务。)
问题描述
我正在尝试从以管理员身份运行的程序向我的服务 TestService 发送命令,我能够很好地启动/停止它,但是每当我尝试 ExecuteCommand() 时,我都会遇到异常:
无法控制计算机“.”上的服务。
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(100)
用类似的东西替换service.ExecuteCommand(130)
就可以了。
推荐阅读
- javascript - 可以在反应组件中调用函数吗?
- python - 尽管在 run_in_executor 中运行了阻塞方法,但我收到“正在执行的任务”通知
- chart.js - 在 ChartJS 的插件中抓取标题
- java - 带导航的 Android Studio ViewPager
- java - 如何在Android中打开特定的tiktok视频链接?
- html - 当内部文本被包装时,如何防止绝对位置跨度向上移动
- libjpeg-turbo - Jpeg Turbo 适用于彩色但不适用于灰度
- java - 司机爪哇动物保护区
- docker - 如何将 docker 信任根密钥 ID 与实际的根密钥文件相关联
- swiftui - ScrollView + LazyStacks 口吃