Запретить NServiceBus обрабатывать сообщения во входной очереди

Я хочу настроить экземпляр NServiceBus, чтобы использовать метод SendLocal, который отлично работает, используя следующий код:

var bus = NServiceBus.Configure.With()
    .StructureMapBuilder()
    .XmlSerializer()
    .MsmqTransport()
        .PurgeOnStartup(true)
    .UnicastBus()
        .LoadMessageHandlers()
        .DoNotAutoSubscribe()
    .CreateBus()
    .Start();

 bus.SendLocal(new MyMessage());

Однако это приводит к немедленной обработке сообщения. Я хотел бы, чтобы шина не обрабатывала сообщение, а обрабатывала его в другом AppDomain позже, используя другой экземпляр NServiceBus.

Является ли это возможным?


person Mikael Östberg    schedule 07.03.2012    source источник


Ответы (1)


Вы можете использовать Bus.Send(msg) для другой конечной точки NServiceBus, когда экземпляр NSB запускается, он может обработать сообщение.

Примечание. Вам необходимо настроить конечную точку другой службы в конфигурации вашего приложения, как показано ниже.

  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Messages="MYCO.Messages.MyMessage" Endpoint="MyMessage.Another.Endpoint@localhost"/>
    </MessageEndpointMappings>
  </UnicastBusConfig>
person Sathish Naga    schedule 07.03.2012
comment
Я тоже так придумала, спасибо! Не могу поверить, что я не подумал об этом раньше. У меня даже есть отдельный AppDomain, так что я могу использовать для него пользовательские настройки. - person Mikael Östberg; 08.03.2012