繁体   English   中英

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

[英]Unable to start and stop service using 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服务'。'

有人可以帮我吗?

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

再试一次

service.ServiceName = "aspnet_state";

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

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

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

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

还要注意一个电话

service.Start();

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

service.WaitForStatus(ServiceControllerStatus.Running);

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

以管理员身份打开Visual Studio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM