.net ServiceController - 无法在机器 "service name"中打开服务 '.'

标签 .net windows-services

我正在尝试使用ServiceController通过WinForms应用程序访问Windows服务(也是由我创建的) :

service = new System.ServiceProcess.ServiceController("MyService")

服务返回 OK,我可以通过 myservice.Status 查看状态。

但是当我尝试启动(或停止)它时,它返回错误:

Unable to open service MyService in machine '.'

我是管理员,服务进程作为 NetworkService 运行。

我是 .net 和 Windows 应用程序的新手,我似乎无法进一步调试它。

最佳答案

我终于能够通过在 app.manifest 中设置执行级别来解决该问题(项目->新项目->应用程序 list )

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

现在控制应用程序需要管理员权限,因此可以毫无问题地启动/停止服务。

不过,我相信我可以通过代码模拟或以某种方式降低服务运行级别,以其他方式做到这一点。

在启动应用程序之前,我必须对此进行审查,然后我将在此处发布我的发现。

感谢 Drew 在整个调试过程中提供的指导。

问候

关于.net ServiceController - 无法在机器 "service name"中打开服务 '.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460966/

相关文章:

c# - 检查电子邮件的 Windows 服务 - IIS/C#

c# - 如何检查对象是否是某种类型的数组?

.net - F# 多态性

c# - 全局低级键盘 Hook - Race Condition

C# WPF MVVM - 命令不起作用?

c# - KnockoutMVC 提交按钮不起作用

c# - 调度程序不执行作业,似乎甚至没有注册它

python - 使用特定的 conda 虚拟环境将 Python 程序作为 Windows 服务运行

c# - 托管在 Windows 服务中的 WCF 服务运行速度比控制台应用程序慢 10 倍

c# - 是否可以从 .net core 3.1 Windows 服务打印文档?