无法使用ServiceController启动和停止服务

时间:2015-08-07 08:53:12

标签: c# service class-library servicecontroller

我有以下方法来启动和停止服务。我从另一个Console应用程序调用此方法进行调试,因为我已经使用了类库(DLL)中的方法。

应用程序以管理权限启动。

public void ServiceStart()
{
    ServiceController service = new ServiceController();
    service.ServiceName = "ASP.NET State Service";
    service.Start();
}

public void ServiceStop()
{
    ServiceController service = new ServiceController();
    service.ServiceName = "ASP.NET State Service";
    service.Stop();
}

但是当我调用Start()Stop()时会抛出以下消息:

  

无法在计算机上打开ASP.NET State Service服务'

有人能帮助我吗?

2 个答案:

答案 0 :(得分:8)

您必须传递服务名称,而不是显示名称。 务必检查"服务"中的服务属性。应用

再试一次

service.ServiceName = "aspnet_state";

或者,您可以使用显示名称

创建ServiceController实例
ServiceController service = new ServiceController("ASP.NET State Service");

因为构造函数参数的documentation表示:

  

标识系统服务的名称。这也可以   服务的显示名称。

还要注意调用

service.Start();

立即返回,无需等待服务启动。 你应该打电话给

service.WaitForStatus(ServiceControllerStatus.Running);

如果您想在应用程序继续之前确保服务正在运行。

答案 1 :(得分:2)

以管理员身份打开Visual Studio