如何在NServiceBus ReplyToAddress中包含计算机的域名?

时间:2013-04-18 22:03:01

标签: nservicebus

我正在使用带有MSMQ的NServiceBus,我正在尝试将消息从一个域中的计算机发送到另一个域中的另一台计算机。两个域之间存在信任。

这两台计算机可以相互ping通,但前提是它们使用计算机的完全限定名称,例如: pc01.mydomain.net。

在发送邮件的计算机上的配置文件中,我通过将Endpoint属性设置为“Endpoint@pc01.mydomain.net”来确保我的MessageEndpointMappings正确。如果我尝试发送消息,那么它就可以在pc01端点到达。

但是,当pc01端点尝试将回复发送回发件人时(假设计算机的名称为sender01.anotherdomain.net),它无法传递邮件。当我检查Bus.CurrentMessageContext.ReplyToAddress时,它返回“queuename @ sender01”。我相信(虽然我无法证明)如果ReplyToAddress是“queuename@sender01.anotherdomain.net”,那么回复将根据需要到达正确的队列。

所以我只需要一种方法来确保ReplyToAddress具有完全定义的计算机名称(sender01.anotherdomain.net),而不仅仅是计算机名称(sender01)。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

在发件人上创建一个传出的传输邮件mutator,相应地更新ReplyToAddress。

在v4中,您可以通过更改RuntimeEnvironment.MachineNameAction函数来覆盖我们解析计算机名称的方式。