Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

".\QueueName"

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

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

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

Ответ 3

У меня возникла та же проблема и решил ее, изменив ее на @ ".\private $\ QueueName"

Ответ 4

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

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");            
}

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

Ответ 5

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

using (var queue = new MessageQueue([email protected]"FORMATNAME:DIRECT=OS:{Environment.MachineName}\SYSTEM$;DEADXACT"))
{
    queue.Purge();
}

Ответ 6

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

MSMQ configuration

Ответ 7

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

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

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

Remove-WindowsFeature Msmq; Add-WindowsFeature MsMq

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

Powershell - reinstalling MSMQ