我正在努力从另一个应用程序启动服务。
好的,首先,这是我的出发点: 我得到了一个包含在我自己的类中的常用服务,该服务继承自ServiceBase。 此外,我得到了一个ProjectInstaller实例,它继承自System.Configuration.Install.Installer并负责以正确的方式在系统上安装我的服务。
它有这些参数:
serviceInstaller1.ServiceName = "NameOfService";
serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Manual;
serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
此ProjectInstaller输出通过通常的C#.NET安装项目安装。
该服务显示在系统控制中的GUI服务列表中 - >管理 - >服务。但我想知道的是,如果我使用cmd.exe并输入“net start”,该服务不会出现在服务列表中。
到目前为止我还有。 现在我想从另一个应用程序启动我的服务。此应用程序继承自
ServiceController
如果我想现在打电话
Start()
方法,我收到一个错误,告诉我该服务无法打开本地计算机。
我使用与上述相同的服务名称。我很困惑,因为我认为通过我的安装程序正确安装了服务。 或者我的应用程序(以及cmd.exe)是否没有足够的权限来访问该服务?
答案 0 :(得分:1)
我在stackoverflow上发现了这篇文章。 我认为这里发布的答案也适用于此。
答案 1 :(得分:0)
之前我遇到过这个问题,它也是基于权限的。我希望错误信息更加明确。
我建议看一下这篇SO文章:C#.NET: Acquire administrator rights? - 看起来有一个关于升级到答案中提供的管理权限的好教程。