【问题标题】:Windows Service AutoStartWindows 服务自动启动
【发布时间】:2015-08-06 21:55:45
【问题描述】:

考虑一个带有安装项目的windows服务,现在我如何在安装完成后强制windows服务启动?

我尝试添加项目安装程序并在提交时甚至启动了该服务,但这只有在我使用 InstallUtil 时才有效,我正在寻找一种在使用安装项目时制作它的方法...

有什么想法吗?

【问题讨论】:

    标签: c# wcf windows-services


    【解决方案1】:

    您可以创建一个新的自定义操作,该操作将使用 ServiceController 类来启动您新创建的服务。

    【讨论】:

      【解决方案2】:

      为了让您的服务在安装后立即启动,您可以添加以下几行代码。通过订阅 Committed 事件,您可以确保它在安装后启动服务。还要注意service.StartType = ServiceStartMode.Automatic; 行,它又负责在自动启动属性打开的情况下安装服务,这使得服务在系统重新启动时自动启动。

      public class ProjectInstaller : Installer
      {
          private ServiceProcessInstaller process;
          private ServiceInstaller service;
      
          public ProjectInstaller()
          {
              process = new ServiceProcessInstaller();
              process.Account = ServiceAccount.LocalSystem;
              service = new ServiceInstaller();
              service.ServiceName = "MyWCFServer";
              service.StartType = ServiceStartMode.Automatic;
              Installers.Add(process);
              Installers.Add(service);
      
              service.Committed += new InstallEventHandler(serviceInstaller_Committed);
          }
      
          void serviceInstaller_Committed(object sender, InstallEventArgs e)
          {
              ServiceController controller = new ServiceController(service.ServiceName);
              controller.Start();
              controller.WaitForStatus(ServiceControllerStatus.Running);
          }
      }
      

      【讨论】:

        【解决方案3】:

        正如约翰·布莱斯建议的那样;首先添加一个部署项目并在“安装”选项卡和“提交”选项卡中添加自定义操作在这些选项卡中执行您需要的操作,这意味着启动服务。

        【讨论】:

        • 您的意思是制作一个新的 dll 并将其附加到自定义操作吗?还是exe文件?因为我尝试使用 .bat 但它没有用!
        • 如果您已经在 Windows 服务的 OnStart 功能中完成了所有操作,那么只需将 Windows 服务项目中的主要输出添加到自定义操作中。
        • 我已经这样做了,但是这不会强制 tyhe 服务在安装后启动
        • @Khan 我已经让该服务完成了该页面中的所有操作,为什么您将我指向该页面?
        • 我不知道,请查看此链接; devnewsgroups.net/windowsforms/…
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多