Почему MSMQ считает, что я нахожусь на компьютере рабочей группы? - PullRequest
20 голосов
/ 10 мая 2011

Мой компьютер подключен к домену, но когда я иду, чтобы создать общую очередь:

MessageQueue.Create(@".\testqueue");

Я получаю эту ошибку:

Установочный компьютер рабочей группы не поддерживает операцию.

Почему MSMQ может подумать, что я на компьютере рабочей группы?

Ответы [ 7 ]

24 голосов
/ 01 июня 2012

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

Когда мое имя очереди было таким, я получил ошибку рабочей группы:

".\QueueName"

Когда я изменил его на более формальную версию, ошибки не было, и отправка в очередь работала:

"FormatName:DIRECT=OS:ComputerName\private$\QueueName"

На тот случай, если кто-то еще сталкивается с этим сообщением, теперь у него есть что-то еще, чтобы попробовать ...

15 голосов
/ 10 мая 2011

Быть частью домена - это предварительный курсор для установки MSMQ в режиме интеграции с AD.Это не гарантирует, что MSMQ IS установлен в режиме интеграции с AD.MSMQ будет установлен в режиме рабочей группы, если:

  1. Интеграция AD не была выбрана в качестве параметра настройки
  2. Интеграция AD была выбрана, но не инициализирована;проверить журналы событий

Да, имя рабочей группы сбивает с толку в ситуации члена домена.

14 голосов
/ 14 июня 2014

Я получил ту же проблему и решил ее, изменив ее на @ ". \ Private $ \ QueueName"

2 голосов
/ 27 июня 2012

Я столкнулся с той же проблемой, посмотрите на решение ниже. Я не знаю причину, но создание очереди таким образом работает отлично.

private MessageQueue messageQueue;
public const string DEFAULT_QUEUE_NAME = "newQueue";
public const string QUEUENAME_PREFIX = ".\\Private$\\";

public static string QueueName
{
    get
    {
        string result = string.Format("{0}{1}", QUEUENAME_PREFIX, DEFAULT_QUEUE_NAME);
        return result;
    }
}

public void SendMessage()
{
    string queuePath = QueueName;
    MessageQueue  messageQueue = MessageQueue.Create(queuePath);
    messageQueue.Send("msg");            
}

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

0 голосов
/ 28 июня 2019

На сервере у меня возникли проблемы с запуском MSMQ и получением разных типов ошибок, включая ошибку, заданную в вопросе.

Установочный компьютер рабочей группы не поддерживает операцию

Для меня сработало не возиться с диспетчером сервера, а переустановить MSMQ с помощью Powershell.

Remove-WindowsFeature Msmq; Add-WindowsFeature MsMq

Эти два командлета могут быть запущены в консоли Powershell с правами администратора. По крайней мере, это исправило ошибку для меня, но это установит всю функцию Msmq, включая подфункции.

Powershell - reinstalling MSMQ

0 голосов
/ 10 января 2019

Возможно, что MSMQ установлен на вашем компьютере в качестве гостя или другого пользователя, поэтому удалите его с компьютера и установите его с правами администратора.

MSMQ configuration

0 голосов
/ 22 августа 2016

Добавление с целью документирования ... Я получал сообщение об ошибке «Компьютер установки рабочей группы не поддерживает операцию» при попытке доступа к транзакционной очереди недоставленных писем, и это было связано с не указанием имени компьютера.Я использовал точку для обозначения имени компьютера.например, "FORMATNAME: DIRECT = OS:. \ SYSTEM $; DEADXACT".Это не работает даже с использованием полного имени формата.Проблема решена после замены периода на имя компьютера.Ниже приведен рабочий код.

using (var queue = new MessageQueue($@"FORMATNAME:DIRECT=OS:{Environment.MachineName}\SYSTEM$;DEADXACT"))
{
    queue.Purge();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...