0

我正在了解 Windows 服务
我使用安装项目安装
了 Windows 服务 现在在项目安装程序的构造方法中对 Windows 服务中的代码进行了更改
我正在检查服务是否已经安装

 ServiceController[] sc = ServiceController.GetServices();
        foreach (ServiceController service in sc)
            if (service.ServiceName == "VService") { flag = false; break; }
            else flag = true;
        if (flag)
        {
            ServiceInstaller ServiceInstallerObj = new ServiceInstaller();
            InstallContext Context = new InstallContext();
            ServiceInstallerObj.Context = Context;
            ServiceInstallerObj.ServiceName = "VService";
            ServiceInstallerObj.Uninstall(null);
        }

但我想这不是卸载 Windows 服务的原因,当我在属性窗口中更改安装项目的版本并运行在项目构建时生成的安装程序时,我收到一个错误,即服务无法按原样启动已经在运行的任何机构都可以告诉我解决此问题的方法或其他可以完成的方法。谢谢

4

2 回答 2

0

你会想要使用这样的代码:

using System.ServiceProcess;

ServiceController sc = new ServiceController(SERVICENAME);

switch (sc.Status)
{
    case ServiceControllerStatus.Running:
        return "Running";
    case ServiceControllerStatus.Stopped:
        return "Stopped";
    case ServiceControllerStatus.Paused:
        return "Paused";
    case ServiceControllerStatus.StopPending:
        return "Stopping";
    case ServiceControllerStatus.StartPending:
        return "Starting";
    default:
        return "Status Changing";
}

状态标志将告诉您服务正在运行。

于 2013-04-04T15:00:48.790 回答
0
ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });
于 2014-01-10T02:59:42.823 回答