Я хотел бы, чтобы мой подписчик обрабатывал два разных потока сообщений. Я ожидаю, что будет очередь MSMQ для каждого типа сообщений, но я не вижу, как указать более одной InputQueue в разделе MsmqTransportConfig в моем файле .config.
Вот конфигурация без XML для моего подписчика:
Configure.With(new[] { typeof(EventMessage), typeof(EventMessageHandler), typeof(NServiceBus.Unicast.Transport.CompletionMessage) })
.CustomConfigurationSource(new UserConfigurationSource()
.Register(() => new MsmqTransportConfig { InputQueue = "Subscriber1InputQueue", ErrorQueue = "error", NumberOfWorkerThreads = 1, MaxRetries = 5 }))
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.UnicastBus()
.DoNotAutoSubscribe()
.LoadMessageHandlers()
.CreateBus()
.Start();
РЕДАКТИРОВАТЬ: кажется, я получаю разные ответы от разных людей. Всем спасибо! Я думаю, что у меня есть ответ на мой вопрос, а именно: процесс, использующий NServiceBus (будь то издатель или подписчик), может получать сообщения только в ОДНОЙ очереди. Для меня это ненужное ограничение, и очень жаль, что NServiceBus работает таким образом. Я не хочу иметь несколько процессов для получения сообщений, и я не хочу, чтобы все они попадали в одну и ту же очередь. Если есть проблема с определенным обработчиком сообщений, я бы хотел, чтобы очередь ошибок для этого конкретного типа сообщений увеличивалась в размере. Я думаю, это позволило бы лучше видеть, что происходит в системе.