Подключение к MSMQ, «правильный» способ? - PullRequest
1 голос
/ 13 декабря 2011

Я пытаюсь подключиться к MSMQ и отправить несколько сообщений. К сожалению, в проекте есть «предыдущий арт» о том, как это делается, и я должен имитировать его. Способ подключения предыдущего приложения следующий:

if (MSMQ in workgroup mode)
{
    connect via FormatName;
}
else
{
    if (connected to network)
        connect via PathName;
    else
        connect via GUID (as FormatName)
}

Все ли это действительно необходимо? Разве правильного FormatName не должно быть достаточно для подключения к очереди?

Кроме того, «подключенный к сети» обнаруживается путем вызова NetGetDCName(), который помечен как устаревший в моем MSDN, что еще больше усложняет вопрос о том, почему приложение подключается таким образом.

TL; DR : вышеуказанная логика подключения: неправильная, устаревшая или правильная? Можно ли упростить это, просто используя FormatName для подключения во всех случаях?

1 Ответ

4 голосов
/ 13 декабря 2011

Этот код определяет, доступен ли домен, путем поиска контроллера домена. Если домен недоступен, предполагается, что MSMQ работает в режиме, не связанном с доменом или рабочей группой.

Режим домена позволяет использовать публичные очереди и адресацию путей. Вместо этого в режиме рабочей группы используются частные очереди и адресация имени формата (хотя это упрощение).

Таким образом, код действительно определяет режим адресации сообщений, который будет использоваться.

Недостаточно информации об окружающей среде, чтобы сказать, можно ли просто использовать formatname для всех случаев.

Приветствия
Джон Бруквелл

...