Использование TopShelf для создания простой службы MQ windows - PullRequest
1 голос
/ 28 апреля 2011

Я использую Topshelf для создания простого сервиса чтения MQ.Так как доступная документация скудна - я столкнулся с некоторыми, возможно, простыми вопросами, на которые, я надеюсь, ответят здесь:

1) Вообще - было бы очень приятно получить фактический экземпляр servicebase моего экземпляра службы, посколькуэто набор методов, к которым я хотел бы получить доступ.Как я могу это сделать?

2) Когда вызывается OnStop, я хотел бы сбросить MQ и быстро обработать оставшиеся сообщения.Тем не менее, доступ к MQ в OnClose вызывает исключение доступа 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 - было бы очень неплохо иметь около.

Спасибо за отличныйбиблиотека!

1 Ответ

1 голос
/ 30 апреля 2011

https://github.com/Topshelf/Topshelf/wiki для документации, есть также http://topshelf -project.com / , но у нас на самом деле не так много в плане документации.Это может быть лучшим обсуждением для нашего списка рассылки.

  1. Мы не раскрываем это, хотя я думаю, что это возможно, мы могли бы через новые события до и после установки (http://legomaster.net/2011/02/announcing-topshelf-2-2/). Общая идея заключается в том, что все, что вам нужноset будет доступен через наш API конфигурации. Какие элементы внимания, к которым вы хотите получить доступ, по вашему мнению, отсутствуют у вас сейчас?

  2. Какое исключение вы видите?все, что я знаю в дизайне Topshelf, которое должно вызывать эту проблему.

  3. CanPauseAndContinue не установлено; опустите проблему в нашем трекере ошибок на github, и я думаю,это то, что можно решить.

...