Я использую 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 - было бы очень неплохо иметь около.
Спасибо за отличныйбиблиотека!