首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Topshelf命令未返回

Topshelf命令未返回
EN

Stack Overflow用户
提问于 2013-03-05 08:19:04
回答 1查看 631关注 0票数 1

我正在使用Topshelf v3.1将我的控制台应用程序安装为windows服务。我通过命令行安装我的控制台,比如: myconsole install

一切看起来都很好,除了命令似乎永远不会完成,我的意思是,通常一旦执行了一个命令,命令行控制台就会恢复到您可以再次键入另一个命令的状态。不知怎么的,topshelf命令在最后一点停止了,所以我必须按C+C来终止该命令。

我的代码如下:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2013-03-06 06:31:27

托架是用来运行服务的。这是预期的行为。该服务需要像Windows服务正常运行一样连续运行(直到发送停止命令)。在命令行中,您需要使用CTRL+C发出服务结束的信号。

如果你只想运行一条命令,Topshelf是一个错误的方法。作为调试服务的一种简单方法,Topshelf允许您以命令行的形式正常运行服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15213618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档