Почему MSMQ думает, что я на компьютере рабочей группы?
Мой компьютер подключен к домену, но когда я иду, чтобы создать общедоступную очередь:
MessageQueue.Create(@".\testqueue");
Я получаю эту ошибку:
Компьютер установки рабочей группы не поддерживает операцию.
Почему MSMQ может подумать, что я на компьютере рабочей группы?
Ответы
Ответ 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]()