Я пытаюсь настроить пример NServiceBus PubSub, который размещен внутри набора служб Windows.
Я настроил своего издателя и вижу, что он вызывает метод публикации моих шин.Я также настроил подписчика для прослушивания сообщений, которые я отправляю.Однако, похоже, что фактический процесс подписки не работал должным образом, так как я не вижу сообщения в журнале о том, что подписчик был подписан (как я делаю в образце PubSub).
Мне просто интересно, нужна ли вам какая-то магиячтобы это работало при размещении службы самостоятельно.
ниже моя конфигурация
Publisher
App.Config
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<!-- 1. In order to configure remote endpoints use the format: "queue@machine"
2. Input queue must be on the same machine as the process feeding off of it.
3. Error queue can (and often should) be on a different machine.
4. The community edition doesn't support more than one worker thread.
-->
<MsmqTransportConfig InputQueue="publisher.input" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings></MessageEndpointMappings>
</UnicastBusConfig>
Настройка шины:
var bus = Configure.With()
.Log4Net()
.NinjectBuilder()
.XmlSerializer()
.MsmqSubscriptionStorage()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
Подписчик
App.Config
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<!-- 1. In order to configure remote endpoints use the format: "queue@machine"
2. Input queue must be on the same machine as the process feeding off of it.
3. Error queue can (and often should) be on a different machine.
4. The community edition doesn't support more than one worker thread.
-->
<MsmqTransportConfig
InputQueue="subscriber.input"
ErrorQueue="error"
NumberOfWorkerThreads="1"
MaxRetries="5"
/>
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyEventNamespace" Endpoint="publisher.input" />
</MessageEndpointMappings>
</UnicastBusConfig>
Настройка шины:
var bus = Configure.With()
.Log4Net()
.NinjectBuilder()
.XmlSerializer()
.MsmqSubscriptionStorage()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
Что-то я пропускаю или тупо делаю?
Ура