Как изменить конфигурацию Msmq из режима рабочей группы в режим домена? - PullRequest
16 голосов
/ 04 февраля 2010

Существует открытая очередь с именем queue1 на компьютере A. Я хочу отправлять сообщения в эту очередь с компьютера B. Для этого я написал этот код на C #.

if (MessageQueue.Exists("machineA\queue1"))
{
    label1.Text = "queue found";
}
else
{
    label1.Text = "queue could not be found";
}

Но метод Exists() возвращает false на компьютере B. Тот же код хорошо работает на компьютере C.

Я нашел кое-что, связанное с режимом домена msmq и режимом рабочей группы.Я думаю, что msmq установлен в режиме рабочей группы на компьютере B.

Как я могу изменить эту конфигурацию из режима рабочей группы в режим домена?

Ответы [ 4 ]

18 голосов
/ 21 июля 2011

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSMQ \ Parameters \

Проверьте данные для REG_DWORD workgroup. Это 1 или 0?

  • 1 - режим рабочей группы.
  • 0 в режиме AD
13 голосов
/ 11 апреля 2015

По существу, разница между режимом домена и рабочей группы не определяется значением флага реестра "рабочая группа", упомянутым в @ engin . Этот флаг отражает текущий режим работы, но не устанавливает его.

Работаете ли вы в режиме домена или рабочей группы, определяется, установили ли вы MSMQ на контроллере домена или на рядовом сервере. Подробности о различиях между этими двумя режимами можно найти здесь: https://support.microsoft.com/en-us/kb/884974/

MSMQ 1.0 используется только для поддержки режима домена. Текущая версия MSMQ - 5.0.

Далее вы можете увидеть довольно интересное поведение, когда вы устанавливаете MSMQ на своем DC, флаг вашей рабочей группы постоянно возвращается в 1 после каждого перезапуска службы MSMQ. Это означает, что вы должны предоставить учетной записи сетевой службы разрешение Создать объекты конфигурации MSMQ для объекта компьютера в Доменные службы Active Directory перед установкой Интеграция служб каталогов на компьютере, который является контроллером домена.

Подробности о том, как это сделать, вы можете найти здесь: https://technet.microsoft.com/en-us/library/cc730960.aspx
MSMQ работает под (менее привилегированной) учетной записью сетевой службы вместо (все мощной) учетной записи локальной системы, начиная с версии 4.0 (Vista / Server 2008)

Таким образом, чтобы ответить на вопрос @ mkus напрямую, чтобы «установить» режим домена, вы просто устанавливаете MSMQ на контроллере домена и убедитесь, что для учетной записи сетевой службы установлены соответствующие разрешения. Как только это будет сделано, вы увидите, что он работает в доменном режиме, а флаг рабочей группы автоматически переключается на 0, чтобы отразить это.

Также пара ссылок, чтобы прояснить проблемы, связанные с разрешениями объектов MSMQ и когда / почему вам нужно их установить: http://blogs.msdn.com/b/johnbreakwell/archive/2009/08/03/default-msmq-queue-permissions-have-changed-in-msmq-4-0.aspx. Вкратце, начиная с MSMQ 4.0 Все и анонимный вход в систему были удалены из списков ACL объектов MSMQ по умолчанию в качестве меры предосторожности против атак DoS (хотя есть исключения из этого изменения, и режим рабочей группы является одним из них).

И, как вы можете прочитать в статье Technet ниже, вам нужно перейти предоставить определенные права доступа для объектов MSMQ либо для сетевой службы ИЛИ для учетных записей компьютеров при установка функции службы маршрутизации на компьютере под управлением Windows Server 2008 R2 (или более поздней версии), который не является контроллером домена, ИЛИ при установке функции интеграции службы каталогов очереди сообщений на компьютере под управлением Windows Server 2008 R2 (или более поздней версии), который является контроллером домена. Подробности смотрите здесь: https://technet.microsoft.com/en-us/library/cc749102(v=ws.10).aspx

8 голосов
/ 08 декабря 2010

Запустите Диспетчер серверов на компьютере, на котором размещена очередь.Щелкните правой кнопкой мыши Функции и выберите «Добавить функции»

Разверните в разделе «Очередь сообщений» и «Службы очереди сообщений».Вы должны увидеть флажок для интеграции службы каталогов.

Проверьте его и нажмите «Установить».

Обычно вам нужно перезагрузить сервер, чтобы показать изменения.

4 голосов
/ 13 июня 2014

Я столкнулся с некоторыми проблемами, независимо от того, сколько я установил или удалил MSMQ или перезапустил, я все еще не мог использовать очередь. Поэтому я хотел опубликовать несколько ссылок здесь

http://support.microsoft.com/kb/935498

Когда речь заходит о «Чтобы обойти эту проблему, используйте Microsoft Active Console (MMC) для пользователей и компьютеров Active Directory ...». Ниже описано, как вы это делаете.

Как удалить из активной директории http://technet.microsoft.com/en-us/library/cc773660(v=WS.10).aspx «Удалить устаревшие компьютерные объекты» - это интересующая вас часть.

Я также обнаружил эту приятную ошибку в журнале событий «Служба очереди сообщений не присоединится к домену. В новом домене существует объект конфигурации MSMQ (msmq) с идентификатором, отличным от идентификатора службы. Удалите конфигурацию MSMQ. в новом домене, перезапустите службу очереди сообщений и снова войдите в систему. "- это помогло указать на них.

...