0

好的,

快速背景

  1. 我们使用 NServiceBus 2.0 和标准配置,没有什么“疯狂”的事情发生。

  2. 应用程序是 .NET 3.5

  3. 开发环境是发布者和订阅者在同一个盒子上,Windows 7。

  4. 暂存环境是发布者和订阅者在不同的盒子上,一个是 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 正常工作?

4

1 回答 1

0

将日志记录阈值转为调试,并查看发布者在调用发布期间是否记录“正在向...发送消息”。

于 2010-07-01T05:44:42.390 回答