gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:36:37 24 4
gpt4 key购买 nike

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

有人可以帮帮我吗?

最佳答案

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

再试一次

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();

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

service.WaitForStatus(ServiceControllerStatus.Running);

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

关于c# - 无法使用 ServiceController 启动和停止服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com