Какой фактический адрес MSMQ используется соответствующей привязкой WCF? - PullRequest
0 голосов
/ 21 декабря 2010

Этот вопрос связан с с этим .

. Учитывая, что привязка WCF использует net.msmq:// URL, например, net.msmq://server/private/nc_queue, как узнать, какой фактический адрес MSMQкакой этот URL переведен?Есть ли какой-то след, который можно активировать?Или внешний инструмент, который помог бы захватить адрес?

Спасибо.

EDIT1

ОК, я должен дать разъяснение.Можно напрямую общаться с MSMQ через соответствующий .NET API.В случае MSMQ через его собственный порт 1801, я бы использовал этот адрес MSMQ:

FormatName:Direct=OS:server\private$\nc_queue

Когда MSMQ настроен через HTTP, адрес меняется примерно так:

FormatName:Direct=http://server/msmq/nc_queue

Но привязка WCF использует стандартный URL-адрес для описания адреса, например:

net.msmq://server/private/nc_queue

Итак, как я могу узнать, какой фактический адрес MSMQ (тот, который имеет FormatName), к которому net.msmq://переводится

1 Ответ

2 голосов
/ 21 декабря 2010

Я не совсем понимаю ваш вопрос .... если вы используете WCF netMsmqBinding, вы в основном отбрасываете сообщения MSMQ в очередь MSMQ.Так что у вас действительно есть имя очереди , с которой вы имеете дело, а не URL .....

net.msmq://server/private/nc_queue

Это переводит в частную очередь MSMQ с именем nc_queueна server - так что же вы на самом деле пытаетесь сделать ??Я не понимаю ..... не хочу уточнить ??

А пока посмотрите три серии постов в блоге Тома Холландера по MSMQ, WCF и IIS:

Обновление: Я думаю, что начинаю понимать ваши проблемы - если вы используете WCF netMsmqBinding, вы подключаетесь к MSMQ напрямую - это , а не"MSMQ-over-HTTP".Если вы хотите настроить и использовать MSMQ-over-HTTP из клиента WCF, насколько я понимаю, вы будете разговаривать с обычным обычным HTTP-сервисом, поэтому вам придется использовать basicHttpBinding (или wsHttpBinding) - не конкретный netMsmqBinding.

...