#dns #msmq #workgroup
#dns #msmq #рабочая группа
Вопрос:
Мой компьютер подключен к домену, но когда я захожу создать общедоступную очередь:
MessageQueue.Create(@".testqueue");
Я получаю эту ошибку:
Установочный компьютер рабочей группы не поддерживает операцию.
Почему MSMQ может подумать, что я нахожусь на компьютере рабочей группы?
Ответ №1:
Я знаю, что это поздно, и уже есть принятый ответ, но у меня только что возникла эта проблема, и она была решена путем изменения формата строки очереди.
Когда мое имя очереди было таким, я получил ошибку workgroup:
".QueueName"
Когда я изменил его на более официальную версию, ошибки не было, и отправка в очередь работала:
"FormatName:DIRECT=OS:ComputerNameprivate$QueueName"
На всякий случай, если кто-то еще наткнется на этот пост, теперь у них есть что попробовать…
Комментарии:
1. «.QueueName» указывает на общедоступную очередь. Отправка сообщений в общедоступную очередь выдает вышеупомянутую ошибку. Но отправка сообщений в частную очередь этого не делает. Ваша официальная версия фактически указывает на частную очередь. Вот почему они работают.
Ответ №2:
Я столкнулся с той же проблемой и решил ее, изменив ее на @». private $ QueueName»
Ответ №3:
Принадлежность к домену является предварительным условием для установки MSMQ в режиме интеграции с AD. Это не гарантирует, что MSMQ установлен в режиме интеграции с AD. MSMQ установится в режиме рабочей группы, если:
- Интеграция AD не была выбрана в качестве опции настройки
- Интеграция AD была выбрана, но не удалось инициализировать; проверьте журналы событий
Да, название рабочей группы сбивает с толку в ситуации с членом домена.
Комментарии:
1. Я проверил журналы и обнаружил, что MSMQ обнаружил, что предыдущая конфигурация MSMQ конфликтовала с ее работой с AD. Я установил MSMQ, а позже включил интеграцию с AD. Я полностью удалил MSMQ, а затем переустановил его со всем (включая интеграцию с AD), и я перестал получать ошибку. Спасибо за вашу помощь.
2. Ваш комментарий описывает тот ответ, который работал для меня: я не только должны добавить дополнительные компоненты в msmq, мне пришлось удалить с msmq полностью сначала, чтобы заставить его работать должным образом.
3. Может кто-нибудь, пожалуйста, пояснить, где найти «журналы событий» (я пытался найти что-нибудь о MSMQ в eventvwr.msc, но Microsoft / Windows / MSMQ / End2End пусто) и как «удалить объект MSMQ в AD»?
4. Удаление устаревших объектов MSMQ Active Directory blogs.msdn.microsoft.com/johnbreakwell/2009/12/16 /…
5. Как и у @MikePateras, у меня не была установлена «Интеграция доменных служб MSMQ Active Directory», но мне не пришлось удалять MSMQ. Мне нужно было только установить интеграцию с AD и перезапустить как службу очереди сообщений, так и приложение, которое пыталось получить доступ к очереди. (Предположительно, было бы лучше остановить службу MSMQ, установить интеграцию с AD и запустить службу.)
Ответ №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 resu<
}
}
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($@"FORMATNAME:DIRECT=OS:{Environment.MachineName}SYSTEM$;DEADXACT"))
{
queue.Purge();
}
Ответ №6:
Возможно, MSMQ установлен на вашем компьютере как гостевой пользователь или другой пользователь, поэтому удалите его с компьютера и установите с правами администратора.
Ответ №7:
На сервере у меня возникли проблемы с запуском MSMQ и получением различного рода ошибок, включая ошибку, заданную в вопросе.
Установочный компьютер рабочей группы не поддерживает операцию
У меня сработало не возня с диспетчером сервера, а переустановка MSMQ с помощью Powershell.
Удалить-WindowsFeature Msmq; Добавить-WindowsFeature MsMq
Эти два командлета можно запустить в консоли Powershell, запущенной от имени администратора. По крайней мере, это исправило ошибку для меня, но это установит всю функцию Msmq, включая дополнительные функции.
Ответ №8:
я получил эту ошибку при отладке веб-сайта из Visual Studio (2015). перезапуск iisexpress решил эту проблему…