Jer*_*rry 3 c# service class-library 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();
}
Run Code Online (Sandbox Code Playgroud)
但是当我调用Start()或Stop()抛出以下消息的异常时:
无法在计算机上打开ASP.NET State Service服务'.'
有人可以帮我吗?
您必须传递服务名称,而不是显示名称.始终在"服务"应用程序中检查服务属性.
再试一次
service.ServiceName = "aspnet_state";
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用显示名称创建ServiceController实例:
ServiceController service = new ServiceController("ASP.NET State Service");
Run Code Online (Sandbox Code Playgroud)
因为构造函数参数的文档说:
标识系统服务的名称.这也可以是服务的显示名称.
还要注意一个电话
service.Start();
Run Code Online (Sandbox Code Playgroud)
立即返回,无需等待服务启动.你应该打电话
service.WaitForStatus(ServiceControllerStatus.Running);
Run Code Online (Sandbox Code Playgroud)
如果要在应用程序继续之前确保服务正在运行.
| 归档时间: |
|
| 查看次数: |
5685 次 |
| 最近记录: |