4
我對NServiceBus相當新,我有一個問題。Nservicebus不存儲用戶msmq
我有一個WCF服務是我的發佈者(我知道我不應該使用wcf發佈)。 我有另一個WCF服務作爲訂戶。
我的問題是,當第二個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>
好的,我想清楚了什麼是錯的......在我的出版商中,我應該設置.IsTransactional(true),修復問題... – mandrive
你應該回答你自己的問題,以便將來的人看到有一個答案,如果他們有同樣的問題,請參閱http://blog.stackoverflow.com/2012/05/encyclopedia-stack-exchange/ SO鼓勵回答你自己的問題。 –