好的,
快速背景
我们使用 NServiceBus 2.0 和标准配置,没有什么“疯狂”的事情发生。
应用程序是 .NET 3.5
开发环境是发布者和订阅者在同一个盒子上,Windows 7。
暂存环境是发布者和订阅者在不同的盒子上,一个是 Windows 7,另一个是 Windows Server 2008。
行为
在开发环境中,发布者订阅者工作正常,这表明代码本身在启动、配置容器等方面是可以的,并且所有消息都被正确配置,即大小、序列化等。
在暂存环境中,发布者成功接收到订阅请求。
它还成功地将订阅者存储在 Subscription 表中(SQL Server,我们使用的是 DBSubscription),并且“queuename@machinename”是正确的。
问题
在 Bus.Publish() 上没有任何反应。没有创建传出队列,没有在任何地方发送或创建消息,也没有抛出错误。
额外信息
有趣的是,来自 Publisher 的 Bus.Send 工作正常!当然,我必须将其添加到配置中:
<UnicastBusConfig> <MessageEndpointMappings> <add Messages="Library.Messages" Endpoint="subscriberqueue@machinename"/> </MessageEndpointMappings> </UnicastBusConfig>
发布者也可以解决:
ping 机器名
那么,发生了什么事,我应该注意什么?
为什么 SEND 有效,而 PUBLISH 无效?
如何让 PUBLISH 正常工作?