【问题标题】:NServiceBus Unicast debuggingNServiceBus 单播调试
【发布时间】:2013-05-14 20:35:09
【问题描述】:

我有几个将消息推送到远程 MSMQ 的网站(因此可以将它们发布到订阅者列表)。因为网站不使用消息——它只是一个发送后忘记的设置——我的 web.config 中只有以下站点的配置:

<UnicastBusConfig>
  <MessageEndpointMappings>
    <add Messages="MyNamespace.Messages" Endpoint="PublishingInputQueue@remoteserver" />
  </MessageEndpointMappings>
</UnicastBusConfig>

我正在尝试解决一个错误,其中间歇性消息似乎已通过 Bus.Send(..) 成功发送(不引发异常),但消息从未到达目标队列。

我可以做任何其他配置来帮助诊断此问题吗?有没有办法为 UnicastBus 失败的消息设置错误队列?是否像在 MsmqTransportConfig 中建立一个错误队列一样简单(我目前在我的配置中没有?)

更新

更多上下文...

  • 正如 cmets 中所述,我看到一堆消息显然堆积在 Web 服务器的传出消息队列中。 (我无法查看实际消息,但在计算机管理中单击“传出队列”时可以看到计数 > 0。)
  • 创建目标队列(在远程服务器上)的发布者在 NServiceBus 启动代码中有 .IsTransactional(true)
  • 通过 UnicastBus 推送到该队列的客户端在其 NServiceBus 启动代码中具有 .IsTransactional(false)
  • 这似乎不会对推送到此目标队列的其他客户端网站造成问题。然而:
    • 似乎没有出现故障的网络服务器是 Windows Server 2008
    • 失败的网络服务器是 Windows Server 2003
    • 不知道这是否会有所作为
  • 运行应用程序池的域用户拥有目标队列的完全权限。

【问题讨论】:

  • 检查死信队列,看看是否有任何消息结束。
  • 是的,我看到似乎是在 Web 服务器上的传出队列中备份的消息。 (这对我来说是全新的。)谢谢你的建议,我会让你知道我发现了什么。

标签: nservicebus


【解决方案1】:

为了完整起见:

事实证明,服务器上用于 MSMQ 服务的 Active Directory 对象不同步。我相信当我们的 DevOps 团队创建了一个服务器实例,将其全部设置好,然后为集群中的其他服务器实例克隆它时,就会发生这种情况。此初始服务器工作正常(解释间歇性成功),但克隆实例的 MSMQ 的 AD 对象不同步。删除对象以允许重新创建解决了该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多