无法在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)

无法在WiX自定义操作中启动服务

表示指定的服务"MyService"没有安装在您的计算机上。你可以去Start > Run > services.msc检查一下。

你也可以从serviceController中直接创建一个对象,而不是获取一个已安装服务的列表,并从该列表中搜索你的服务:

    bool DoesServiceExist(string serviceName)
    {
       return ServiceController.GetServices().Any(serviceController => serviceController.ServiceName.Equals(serviceName));
    }

引用:https://stackoverflow.com/a/23800234