【发布时间】:2016-05-18 23:59:38
【问题描述】:
我的问题与这个问题有关: MSMQ messages disappear when they get to remote server 但答案对我不起作用。
我也尝试了这篇文章中提到的所有建议: MSMQ messages disappear from outbound queue but never arrive in the inbound queue 但没有运气。
从远程客户端发送的消息最终进入死信队列并出现错误 400。消息记录在 end2end 日志中,例如ID 为 {38edb6f8-c4a5-4916-9a6f-7e3751b48a47}\12345 的消息已发送到队列 DIRECT=https://domain.com/msmq/private$/nont。
在服务器端,消息到达 IIS (http 200),但之后消息消失。 end2end 日志中没有记录任何内容,并且任何队列中都没有出现任何内容。我在 windows/system32/msmq/mapping 文件夹中创建了一个映射,并尝试了我能想到的所有可能的重定向组合。我还使用完全到达/接收确认,服务器返回一个 ACK 并带有相同的 HTTP 400 错误。
我搜索了互联网并尝试了各种可能的解决方案,但没有解决消息传递问题。问题可能是因为我们的服务器是 AWS 上的 EC2 实例吗?
【问题讨论】:
-
在服务器端,消息到达 IIS - 这是否意味着您通过 IIS 通过 http 托管队列?
-
嗨,Tom,是的,MSMQ/HTTP 组件安装在服务器上,该组件在 IIS 中设置所需的 MSMQ 组件,IIS 应将消息定向到适当的队列。
-
我认为这一定是权限的结果,但我只熟悉 msmq over tcp,因此 http 可能需要一组不同的权限。
标签: msmq