以编程方式重新启动c#TopShelf服务 我发现自己处于一个糟糕的情况,我有一个TopS架服务,它使用一个带有内存问题的C++库。由于我身处一个地方,我想时不时打电话给TopShelf,在其活动暂停期间重新启动服务,除了“让世界再次变得正确”之外,没有其他原因

以编程方式重新启动c#TopShelf服务 我发现自己处于一个糟糕的情况,我有一个TopS架服务,它使用一个带有内存问题的C++库。由于我身处一个地方,我想时不时打电话给TopShelf,在其活动暂停期间重新启动服务,除了“让世界再次变得正确”之外,没有其他原因,c#,topshelf,C#,Topshelf,有任何TopShelf API允许这样做吗?我在文档中找不到任何文件。我确信Topshelf不支持这一点,因此您必须自己编写代码 看看这门课 最坏的情况是,您可能有第二个简单的topshelf安装程序来管理您当前的服务并重新启动它?(我知道有点脏)调用环境。退出(1)何时需要重新启动服务 然后在HostFactory中添加EnableServiceRecovery HostFactory.Run(configure => { conf

有任何TopShelf API允许这样做吗?我在文档中找不到任何文件。

我确信Topshelf不支持这一点,因此您必须自己编写代码

看看这门课


最坏的情况是,您可能有第二个简单的topshelf安装程序来管理您当前的服务并重新启动它?(我知道有点脏)

调用
环境。退出(1)何时需要重新启动服务

然后在HostFactory中添加EnableServiceRecovery

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);
                });

            });
HostFactory.Run(配置=>
{
configure.Service((ServiceConfigurator服务)=>
{
service.WhenStarted(s=>s.Start());
停止时的服务(s=>s.Stop());
});
//Windows服务用于运行的安装程序帐户。
configure.RunAsNetworkService();
configure.SetServiceName(“ServiceName”);
configure.SetDisplayName(“ServiceName”);
configure.SetDescription(“Description”);
configure.StartAutomaticallyDelayed();
configure.EnableServiceRecovery(recoveryOption=>
{
recoveryOption.RestartService(0);
});
});
TopShelf不支持-