私はNServiceBusにかなり慣れていないので、質問があります。
私は自分の発行元であるWCFサービスを持っています(私はwcfによる発行を使用すべきではないことを知っています)。サブスクライバーとして別のWCFサービスがあります。
私の問題は、2番目のwcfサービスがパブリッシャーにサブスクライブするときに、パブリッシャーがこの情報をmsmqに保存しないことです(.MsmqSubscriptionStorage()を使用する場合)。ただし、パブリッシャーがサブスクライバーをメモリに保存する場合は機能します(.InMemorySubscriptionStorage())
バスにmsmqを使用させるにはどうすればよいですか?
以下に発行者と加入者のコードを示します。
パブリッシャーバスの初期化:
Bus = NServiceBus.Configure.WithWeb()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional( false )
.PurgeOnStartup( false )
.UnicastBus()
.LoadMessageHandlers()
.ImpersonateSender( false )
.MsmqSubscriptionStorage()
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());
パブリッシャーの構成:
<configSections>
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
</configSections>
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/>
サブスクライバーバスの初期化:
Bus = NServiceBus.Configure.WithWeb()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.LoadMessageHandlers()
.CreateBus()
.Start(() => Confgure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());
サブスクライバー構成:
<configSections>
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
</configSections>
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/>
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Messages" Endpoint="FirstService" />
</MessageEndpointMappings>
</UnicastBusConfig>