[英]Restarting self in a Topshelf service
我正在使用Topshelf來托管Windows服務。 我希望讓托管服務調用以在某些事件時重新啟動。 我想知道如何實現這一目標?
謝謝,本
如果您知道要重新調用的服務名稱,則可以使用服務管理器。 它本身可能會或可能不會起作用。 這不是Topshelf所暴露的,所以你可以自己動手去做。
調用Environment.Exit(1);
當你想重啟服務
然后在HostFactory中添加啟用ServiceRecovery
HostFactory.Run(configure =>
{
configure.Service((ServiceConfigurator<Service> service) =>
{
service.WhenStarted(s => s.Start());
service.WhenStopped(s => s.Stop());
});
//Setup Account that window service use to run.
configure.RunAsNetworkService();
configure.SetServiceName("ServiceName");
configure.SetDisplayName("ServiceName");
configure.SetDescription("Description");
configure.StartAutomaticallyDelayed();
configure.EnableServiceRecovery(recoveryOption =>
{
recoveryOption.RestartService(0);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.