Сервис не запускается после включения компьютера

Я создал Windows Service Application, с автоматическим запуском.

public ServiceInstaller()
{
  InitializeComponent();
  var processInstaller = new ServiceProcessInstaller {Account = ServiceAccount.LocalSystem};
  var serviceInstaller = new System.ServiceProcess.ServiceInstaller
  {
     ServiceName = "TestService",
     Description = "Test",
     StartType = ServiceStartMode.Automatic
  };
  Installers.Add(processInstaller);
  Installers.Add(serviceInstaller);
}

Суть сервиса в следующем: в методе OnStart запускается Nancy сервер, который должен обрабатывать запросы.

public partial class NancyService : ServiceBase
{
  private NancyHost _nancyHost;
  protected override void OnStart(string[] args)
  {
     EventLog.WriteEntry("NancyService->OnStart", EventLogEntryType.Information, 1);
     _nancyHost = NancyModuleStarter.Start("http://localhost", 4321);
  }
}

Сервис не всегда запускается после отключения и включения компьютера (чаще всего воспроизводится, если перед выключением компьютера сервис был отключен) Заглянул в логи Event Viewer, никаких ошибок связанное с нашим сервисом я не нашел. Добавил EventLog.WriteEntry в метод OnStart (чтобы понять вызывается ли метод OnStart после включения компьютера). Оказалось, что в Event Viewerлоги не записываются даже если сервис был запущен автоматически. Т.е. если сервис запускаю вручную (Service manager, кнопка Start Service), то лог записывается в Event Viewer, если автоматически то не записывается.

здесь проект. Если запустить сервис, затем сделать запрос http://localhost:4321/settings, то получим ответ Hello world.

Скажите пожалуйста,

  1. Почему не вызывается метод OnStart, если сервис был запущен автоматически после включения компьютера?
  2. Как могу понять почему не запустился сервис автоматически? Имеются какие-либо методы отладки?

Ответы (0 шт):