繁体   English   中英

使用InstallUtil自行安装服务

[英]Using InstallUtil to install service in its own process

我已经使用InstallUtil成功安装了我的服务,但是我希望我的服务在其自己的进程中而不是在svchost中运行。 如果我通过说winmgmts来执行此操作,则可以将OWN_PROCESS传递给它( 请参见此处 )。 如何使用System.Configuration.Install.Installer执行此操作?

我当前的代码:

  [RunInstaller(true)]
  public partial class MyServiceInstaller : Installer
  {
    private ServiceInstaller serviceInstaller;
    private ServiceProcessInstaller processInstaller;

    public MyServiceInstaller ()
    {
      InitializeComponent();

      processInstaller = new ServiceProcessInstaller();
      serviceInstaller = new ServiceInstaller();

      processInstaller.Account = ServiceAccount.LocalSystem;

      serviceInstaller.StartType = ServiceStartMode.Manual;
      serviceInstaller.ServiceName = "MyService";

      Installers.Add(serviceInstaller);
      Installers.Add(processInstaller);
    }
  }

我将不得不假设这种方法是不可能的。 我很久以前只是使用另一种方法(sc.exe)来完成此操作。

并非所有Windows服务都必须在svchost中运行吗?

当您安装服务时,它只是服务的注册表项,当Windows启动时,它将扫描这些条目并在服务主机中加载所需的进程。 然后,它们监视服务并提供诸如汽车之类的设施。 重新启动TC。

如果您希望您的服务以正常exe的形式运行,那么我了解您会松开Windows服务模型提供的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM