簡體   English   中英

在Topshelf服務中重新啟動self

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM