我在不同的领域有一个代理和一个服务器。服务器充当MSMQ服务器,代理充当MSMQ客户端。我正在使用mqsender实用程序,它是MSMQ工具的一部分。
我的问题是,当使用HTTP:// format字符串( MSMQ安装有HTTP支持)时,没有传递消息。使用OS: format字符串可以正常工作。
当使用HTTP时,消息会立即移动到死信队列,并且类被设置为未知,因此我不知道这种行为的原因。
因此,这是可行的:
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 -没有找到,对吗?EDIT2
我成功地解决了这个问题。IIS缺乏匿名身份验证,从观察到它的日志- 401.2 HTTP错误就很明显了.在启用之后,所有操作都很好。为什么MSMQ会在死消息上显示类未知呢?在另一台机器上,同样的设置会产生错误: 401,这更有意义。
发布于 2011-05-16 12:12:48
MSMQ的日志记录是内部的,因此您将无法很容易地了解为什么在不向Microsoft提供支持的情况下无法传递消息。
我在解决各种MSMQ/HTTP问题上有几篇博客文章。
题为“使用HTTP的MSMQ消息无法传递”的17条可能会有所帮助。
还要确保你的查看IIS日志以获取信息。
干杯
约翰·布莱克韦尔
https://stackoverflow.com/questions/5977382
复制相似问题