我正在使用 Topshelf v3.1 将我的控制台应用程序安装为 Windows 服务。我通过命令行安装我的控制台,例如: myconsole install
除了命令似乎永远不会完成之外,一切似乎都很好,我的意思是通常一旦执行命令,命令行控制台将返回您可以再次键入另一个命令的状态。不知何故,topshelf 命令在最后一点停止,所以我必须 Control + C 来终止该命令。
我的代码如下:
class Program
{
static void Main(string[] args)
{
//HostFactory.Run(x =>
//{
// x.Service<DummyService>(s =>
// {
// s.ConstructUsing(name => new DummyService());
// s.WhenStarted(tc => { });
// s.WhenStopped(tc => { });
// });
// x.RunAsLocalSystem();
// x.SetDescription("DummyService1");
// x.SetDisplayName("DummyService2");
// x.SetServiceName("DummyService3");
// x.StartAutomatically();
//});
var service = new DummyService();
service.Run();
}
}
不知何故,如果我取消注释掉上面注释掉的块并注释掉 Main 方法中的最后两行。然后我再次运行该命令,它神奇地起作用。
PS: DummyService.Run 方法只是包装了注释代码块。本质上,它们是相同的。
有任何想法吗?
干杯,Ld