Сервис не запускается после включения компьютера
Я создал 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.
Скажите пожалуйста,
- Почему не вызывается метод
OnStart, если сервис был запущен автоматически после включения компьютера? - Как могу понять почему не запустился сервис автоматически? Имеются какие-либо методы отладки?