当我们使用System.Messaging远程发送消息时,它正常工作,即我可以在remore机器上看到队列中的消息。
但是当我们尝试执行相同的任务,即使用NServiceBus远程发送消息时,消息没有出现在远程队列中,似乎消息消失了
注意,我们在客户端app.config文件中有以下配置:
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="CCSMessage.ITaskCompleted, CCSMessage" Endpoint="transactionalQueue@dev014.ccs.local" />
</MessageEndpointMappings>
</UnicastBusConfig>
我们使用以下流畅的配置来引导客户端:
Configure.With()
.CastleWindsorBuilder(_container)
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
我们显然做错了吗?
答案 0 :(得分:1)
鉴于客户端和服务器位于不同的计算机上,您应该在客户端的内部出站队列中看到该消息(如果它们位于同一台计算机上,则不会)。消息将保留在那里,直到它可以传送到服务器。确保分布式事务处理协调器在两台计算机上都运行。还要确保服务器的app.config中的InputQueue匹配。还要确保服务器NSB队列是本地和事务性的。