【发布时间】:2016-07-27 11:28:05
【问题描述】:
NServiceBus 5.2.14、NServiceBus.Host 6.0.0、MSMQ 传输、NHibernate 持久性
我需要通过 pub/sub 设置两个端点之间的通信。两者都有静态公共 IP。首先部署在 Azure 经典 VM 上。第二个目前是我的开发 PC。
我正在使用“UnicastBusConfig”部分将命令和事件映射到端点地址,使用“端点”属性中的公共 IP。 Bus.Send() 按预期工作。但是 Bus.Publish() 和 Bus.Reply() 尝试将消息发送到私有 IP。
订阅消息还带有订阅者的私有 IP(我检查了订阅表)。
看起来这两个端点(双向)之间发送的所有消息都为“响应队列”捕获了发件人的私有 IP。这是一个卡在传出队列中的已发布事件的示例。 Stuk event
我是否可以将我的端点配置为至少将自定义地址(在我的情况下为公共 IP)用于事件订阅消息(我可以在没有 Bus.Reply() 的情况下生活)。
我试过了: 1. 使用 BusConfiguration 的 OverridePublicReturnAddress() 扩展; 2. 附加设置“ReplyToAddress”标头的 IMutateTransportMessages 实现。 但没有任何积极的结果。
【问题讨论】:
-
您是否检查过队列在 MSMQ 中是公开的?我想知道它们是否被标识为私有 IP,因为它们是作为私有队列创建的,因此没有向目录服务注册?
标签: .net azure nservicebus msmq