我正在尝试启动Topshelf的一个实例。我已经下载了2.3版的二进制文件并提取了所有内容。
然后我创建了一个空的控制台应用程序。我已将框架更改为.NET 4.0 framework
,并将以下代码添加到我的static void Main()
方法中:
Host h = HostFactory.New(x =>
{
x.Service< MyApp>(s =>
{
s.SetServiceName("Something");
s.ConstructUsing(name => new MyApp());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("Something");
x.SetDisplayName("Something");
x.SetServiceName("Something");
});
h.Run();
当我点击F5时,consoleapp按预期运行。
然后我将bin / release输出复制到topshelf / services / test目录并运行Topshelf.Host.exe。这是结果:
如果我将浏览器指向仪表板,这就是我所看到的:
“测试”服务一直说“正在创建”(等待超过15分钟)。
我做错了什么?我尝试过多种控制台应用程序。如果我在控制台应用上调用install
,则应用会成功注册。
提前致谢!
答案 0 :(得分:1)
将Topshelf DLL链接到控制台应用程序时,应该从命令行运行控制台应用程序。从我所看到的,你正在尝试使用Topshelf主机。尝试运行您的控制台应用程序,您应该看到它正确启动您的服务。