无法在WiX自定义操作中启动服务
本文关键字:启动 服务 操作 自定义 WiX | 更新日期: 2023-09-27 18:16:43
我正在尝试在自定义操作中为我的WiX安装项目c#启动服务。
首先检查服务是否启动:
[CustomAction]
public static ActionResult StopService(Session session)
{
ServiceController MyService = null;
try
{
MyService = new ServiceController("MyService");
if (MyService != null) &&(MyService.Status != ServiceControllerStatus.Stopped))
{
MyService.Stop();
MyService.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 2, 0));
}
session.Log("Stop service");
}
catch (Exception ex)
{
session.Log(ex.ToString());
}
}
但有一个例外,当我试图获得状态(MyService.Status
):
系统。InvalidOperationException:不可能提供服务MyService sur 'ordinateur '.'。--->System.ComponentModel。Win32Exception: Le service spsm - cififile n ' exists pas服务安装:Fin de la trace de la pileD 'exception internet - comSystem.ServiceProcess.ServiceController.GetServiceHandle (Int32desiredAccess)System.ServiceProcess.ServiceController.GenerateStatus ()System.ServiceProcess.ServiceController.get_Status ()CustomAction.CustomActions。StopService会话(会话)
翻译:"无法在此计算机上打开服务MyService ->指定的服务不存在。
如何查看服务是否已安装?(我检查了一下,MyService不是null)
表示指定的服务"MyService"没有安装在您的计算机上。你可以去Start > Run > services.msc
检查一下。
你也可以从serviceController中直接创建一个对象,而不是获取一个已安装服务的列表,并从该列表中搜索你的服务:
bool DoesServiceExist(string serviceName)
{
return ServiceController.GetServices().Any(serviceController => serviceController.ServiceName.Equals(serviceName));
}
引用:https://stackoverflow.com/a/23800234