Мы используем Topshelf для размещения службы. Перед запуском службы мы вызываем базу данных для загрузки большого количества данных. Из-за этого при запуске службы мы получаем следующую ошибку:
Start Service failed with return code '[7] ServiceRequestTimeout
Мы используем следующий код для запуска службы:
HostFactory.Run(x =>
{
x.Service<AppService>(s =>
{
s.ConstructUsing(name => new AppService(s_resolver, baseAddress, resolver));
s.WhenStarted(svc => svc.Start());
s.WhenStopped(svc => svc.Stop());
s.WhenShutdown(svc => svc.Shutdown());
});
x.EnableShutdown();
x.RunAsLocalService();
x.StartAutomatically();
x.SetDisplayName("Application Host");
x.SetDescription("Application Host");
});
Если я попытаюсь запустить службу с помощью Visual Studio, служба будет работать нормально. Но когда сервис размещается через Topshelf, я получаю ошибку тайм-аута.
Я также пробовал использовать hostControl.RequestAdditionalTime(TimeSpan.FromSeconds(300))
, но даже после добавления дополнительного периода ожидания я не могу решить проблему. Пожалуйста, поделитесь своими предложениями.