Topshelf服务/应用程序停留在“创建”

时间:2012-07-23 17:59:10

标签: c# topshelf

我正在尝试启动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。这是结果:  Topshelf console output

如果我将浏览器指向仪表板,这就是我所看到的: Topshelf dashboard

“测试”服务一直说“正在创建”(等待超过15分钟)。

我做错了什么?我尝试过多种控制台应用程序。如果我在控制台应用上调用install,则应用会成功注册。

提前致谢!

1 个答案:

答案 0 :(得分:1)

将Topshelf DLL链接到控制台应用程序时,应该从命令行运行控制台应用程序。从我所看到的,你正在尝试使用Topshelf主机。尝试运行您的控制台应用程序,您应该看到它正确启动您的服务。