无法通过ServiceController启动和停止服务

本文关键字:服务 启动 ServiceController | 更新日期: 2023-09-27 18:07:01

我有以下方法来启动和停止服务。我从另一个控制台应用程序调用这个方法来调试,因为我已经在类库(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状态服务服务在计算机'.'上

有人能帮我一下吗?

无法通过ServiceController启动和停止服务

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

再试一次

service.ServiceName = "aspnet_state";

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

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

,因为构造函数参数的文档说:

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

还要注意对

的调用
service.Start();

立即返回,而不等待服务启动。你应该调用

service.WaitForStatus(ServiceControllerStatus.Running);

Open Visual studio as Administrator