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

Unable to start and stop service using ServiceController

我有以下方法来启动和停止服务。我从另一个控制台应用程序调用此方法进行调试,因为我在 Class 库 (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() 时会抛出异常并显示以下消息:

Cannot open ASP.NET State Service service on computer '.'

有人可以帮我吗?

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

再试一次

service.ServiceName = "aspnet_state";

或者,您可以使用显示名称创建 ServiceController 实例:

ServiceController service = new ServiceController("ASP.NET State Service");

因为构造函数参数的 documentation 说:

The name that identifies the service to the system. This can also be the display name for the service.

另请注意,调用

service.Start();

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

service.WaitForStatus(ServiceControllerStatus.Running);

如果您想在继续申请之前确保服务 运行。

以管理员身份打开 Visual studio