【问题标题】:How to trace MSMQ?如何跟踪 MSMQ?
【发布时间】:2011-05-12 11:40:24
【问题描述】:

我在不同的域中有一个代理和一个服务器。服务器充当 MSMQ 服务器,代理充当 MSMQ 客户端。我正在使用 mqsender 实用程序,它是 MSMQ 工具的一部分。

我的问题是使用 HTTP:// 格式字符串时没有传递消息(MSMQ 安装了 HTTP 支持)。使用操作系统:格式字符串工作正常。

当使用 HTTP 时,消息会立即移动到死信队列,并且 Class 设置为 Unknown,所以我不知道这种行为的原因。

所以,这行得通:

mqsender.exe /c:10 /j:dead /f:Direct=OS:il-mark-w2k3\private$\test

这不是:

mqsender.exe /c:10 /j:dead /f:Direct=http://il-mark-w2k3/msmq/private$/test

我检查了 MSMQ 虚拟目录是否存在。如何跟踪 MSMQ 操作以尝试了解发生了什么?

谢谢。

编辑

  1. 在服务器本地运行时,所有命令都按预期工作。
  2. 在代理(和服务器)上的浏览器中导航到http://il-mark-w2k3/msmq/private$/test 会导致501 - 标头值指定未实现的方法。导航到http://il-mark-w2k3/msmq 时收到相同的错误。我想没关系,毕竟不是404 - Not Found,对吧?

EDIT2

我已经成功解决了这个问题。 IIS 缺少匿名身份验证,通过观察它的日志就很明显了 - 401.2 HTTP 错误在那里。启用后一切正常。谜底仍然是为什么 MSMQ 在死消息上显示 Class Unknown?在其他机器上,相同的设置会产生 Error : 401,这更有意义。

【问题讨论】:

  • 如果您在 IE 中浏览到 il-mark-w2k3/msmq/private$/test 会发生什么?
  • 我已经更新了这个问题。谢谢你的回复,顺便说一句。
  • 是的,501 或 5050 都不错。显示 Web 服务器上的 MSMQ MQISE 应用程序响应了您发送的数据。
  • 马克,你忘记接受@JohnBreakwell 的回答了吗?似乎他为您指明了正确的方向,如果没有他,您将无法解决这个问题。
  • 嗯,我现在已经标记了。但我真的不知道它是否有帮助,因为我们很久以前就放弃了 MSMQ。摩擦力太大。

标签: msmq


【解决方案1】:

MSMQ 的日志记录是内部的,因此如果不向 Microsoft 提出支持案例,您将无法轻松了解消息未送达的确切原因。

我在 solving various MSMQ/HTTP issues 上有几篇博文。
题为“使用 HTTP 的 MSMQ 消息无法传递”的 17 条可能会有所帮助。

还要确保你check the IIS logs for information

干杯

约翰·布雷克韦尔

【讨论】:

  • 是的,我已经浏览了所有这些。最后让我感到困惑的是死消息的未知消息类 - 我编辑了我的问题来描述解决方案。
猜你喜欢
  • 2011-05-08
  • 2013-04-08
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
  • 2013-01-18
相关资源
最近更新 更多