此问题与this one有关。
鉴于WCF绑定使用net.msmq://
URL,例如net.msmq://server/private/nc_queue
,如何知道该URL被转换为的实际MSMQ地址是什么?是否有某种可以激活的痕迹?或者是一个可以帮助人们捕获地址的外部工具?
感谢。
EDIT1
好的,我应该澄清一下。可以通过相应的.NET API直接与MSMQ对话。在MSMQ超过其本机端口1801的情况下,我将使用此MSMQ地址:
FormatName:Direct=OS:server\private$\nc_queue
通过HTTP配置MSMQ时,地址会更改为:
FormatName:Direct=http://server/msmq/nc_queue
但是WCF绑定使用标准URL来描述地址,例如:
net.msmq://server/private/nc_queue
那么,我怎么知道net.msmq://
被翻译的实际MSMQ地址(具有FormatName的地址)是什么?
答案 0 :(得分:2)
我真的不明白你的问题....如果你使用WCF netMsmqBinding
,你基本上是将MSMQ消息放入MSMQ队列。所以你真正拥有的是你正在处理的队列名称 - 而不是URL ......
net.msmq://server/private/nc_queue
这转换为nc_queue
上名为server
的MSMQ私有队列 - 那么你真正要做的是什么?我没有得到它.....关心澄清??
与此同时,查看Tom Hollander关于MSMQ,WCF和IIS的三篇博文系列文章:
更新:我想我已经开始了解您的问题了 - 如果您使用的是WCF netMsmqBinding
,那么您将直接连接到MSMQ - 这是不是“MSMQ-over-HTTP”。如果您想从WCF客户端设置和使用MSMQ-over-HTTP,根据我的理解,您将使用直接的常规HTTP服务,因此您必须使用basicHttpBinding
(或{ {1}}) - 不特定的wsHttpBinding
。