无法使用 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
我有以下方法来启动和停止服务。我从另一个控制台应用程序调用此方法进行调试,因为我在 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