1

我正在使用 Topshelf 创建一个简单的 MQ 阅读服务。由于可用的文档很少 - 我遇到了一些可能很简单的问题,希望在这里得到解答:

1) 通常 - 获得我的服务实例的实际 servicebase 实例会非常好,因为有一堆我想访问的方法。我怎样才能做到这一点?

2)当调用 OnStop 时,我想刷新 MQ 并快速处理剩余的消息。但是,在 OnClose 中访问 MQ 会引发 MQ 访问异常——这是设计使然,还是?

3) 我在配置器中指定了 OnPause 和 OnContinue 重载。但是 - 服务未启用暂停/继续,因为未设置 AllowPauseAndContinue 标志。最好的方法是什么?

        var retVal = HostFactory.New( x =>
                        {
                            x.Service<ASForwardMessageService>( s =>
                            {
                                s.SetServiceName( s_ServiceName );
                                s.ConstructUsing( name => CreateService() );
                                s.WhenStarted( tc => tc.OnStart() );
                                s.WhenStopped( tc => tc.OnStop() );
                                s.WhenPaused( tc => tc.OnPause() );
                                s.WhenContinued( tc => tc.OnContinue() );
                            } );

                            x.RunAsLocalSystem();

                            x.DependsOnMsmq();

                            x.StartAutomatically();

                            x.SetDescription( s_Description );
                            x.SetDisplayName( s_DisplayName );
                            x.SetServiceName( s_ServiceName );
                        } );

顺便说一句 - 是否有任何可用于 Topshelf 项目的文档 - 很高兴有。

感谢一个很棒的图书馆!

4

1 回答 1

1

https://github.com/Topshelf/Topshelf/wiki用于文档,还有http://topshelf-project.com/但我们在文档方面并没有太多。这对于我们的邮件列表也可能是一个更好的讨论。

  1. 我们不会公开这一点,但我想我们可以通过新的安装前和安装后事件 (http://legomaster.net/2011/02/announcing-topshelf-2-2/)。一般的想法是,您需要设置的任何内容都将通过我们的配置 API 公开。您希望获得哪些您认为您现在没有的关注项目?

  2. 你看到了什么异常?我所知道的 Topshelf 设计中没有任何东西会导致这个问题。

  3. CanPauseAndContinue未设置;在 github 上的问题跟踪器中删除一个问题,我认为这是可以解决的。

于 2011-04-30T12:02:23.647 回答