3

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

有人可以帮我吗?

4

2 回答 2

9

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

再试一次

service.ServiceName = "aspnet_state";

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

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

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

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

另请注意,调用

service.Start();

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

service.WaitForStatus(ServiceControllerStatus.Running);

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

于 2015-08-07T08:56:54.290 回答
2

以管理员身份打开 Visual Studio

于 2017-02-16T14:46:41.160 回答