Использование InstallUtil для установки службы в своем собственном процессе - PullRequest
0 голосов
/ 02 декабря 2011

Я успешно установил свой сервис с помощью 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);
    }
  }

Ответы [ 2 ]

0 голосов
/ 27 декабря 2011

Я собираюсь предположить, что это невозможно с этим методом. Я давно просто использовал другой метод (sc.exe) для достижения этой цели.

0 голосов
/ 02 декабря 2011

Разве все службы Windows не должны работать внутри svchost?

Когда вы устанавливаете свою службу, это просто ключ реестра для службы, при запуске Windows она сканирует эти записи и загружает необходимые процессы внутри.служба хостов.затем они контролируют обслуживание и предоставляют такие средства, как авто.restarte tc.

Если вы хотите, чтобы ваш сервис работал как обычный exe, тогда я понимаю, что вы теряете возможности, предоставляемые моделью сервиса Windows.

...