簡體   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