【发布时间】: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 操作以尝试了解发生了什么?
谢谢。
编辑
- 在服务器本地运行时,所有命令都按预期工作。
- 在代理(和服务器)上的浏览器中导航到
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