如何追踪MSMQ?

时间:2011-05-12 11:40:24

标签: msmq

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

我的问题是,在使用HTTP://格式字符串时(MSMQ安装了HTTP支持),不会传递消息。使用OS:格式字符串工作正常。

使用HTTP时,消息会立即移动到Dead Letter队列,并且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 ,对吗?
  3. EDIT2

    我已成功解决了这个问题。 IIS缺少匿名身份验证,从观察其日志变得明显 - 401.2 HTTP错误就在那里。它启用后运行良好。问题仍然是为什么MSMQ在死信息上显示Class Unknown ?在其他机器上,相同的设置会产生错误:401 ,这更有意义。

1 个答案:

答案 0 :(得分:3)

MSMQ的日志记录是内部的,因此如果不向Microsoft提出支持案例,您将无法轻易查看消息未能提供的确切原因。

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

另请确保check the IIS logs for information

干杯

John Breakwell