【发布时间】: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