Windows QUEUE MESSAGES ошибка при открытии - Невозможно получить список сообщений. Ошибка: доступ запрещен

Проблема:

При открытии окна "QUEUE MESSAGES" на Windows Server 2003 я получил сообщение об ошибке

"The list of messages cannot be retrieved. Error: Access is denied"

Зачем?

Воссоздал после этих шагов:

  • Windows Server 2003 стандартный 64-разрядный
  • Щелкните правой кнопкой мыши МОЙ КОМПЬЮТЕР
  • Выберите УПРАВЛЕНИЕ
  • СЕРВИСЫ
  • СООБЩЕНИЕ ОЧЕРЕДИ
  • ЧАСТНАЯ ОЧЕРЕДЬ
  • MYSERVICE
  • ОЧЕРЕДНЫЕ СООБЩЕНИЯ

Отображается сообщение об ошибке:

"The list of messages cannot be retrieved. Error: Access is denied."

Настройка / настройка, развернутая в данный момент:

  • Вы вошли как локальный администратор.
  • Машина стоит одна.
  • Служба WCF запущена (используется определенный пользователь WCF)
  • Учетная запись пользователя WCF является членом локальной группы ADMIN.
  • точка чистая 4.0.
  • Служба очереди сообщений работает (локальная система)
  • Возможно проблема с разрешениями, создающая ошибку.

2 ответа

Решение

Это может произойти, если служба.NET удалила группу "Все" из разрешений частной очереди. Вот некоторые шаги, которые вы можете предпринять, чтобы решить эту проблему:

  1. Остановите службу MSMQ
  2. Откройте папку C:\WINDOWS\system32\msmq\storage\lqs
  3. Найдите в этой папке файл, который описывает вашу очередь - (incommingQueue)
  4. Используя блокнот, откройте файл lqs для другой частной очереди с хорошими разрешениями безопасности. (Если у вас нет других частных очередей, создайте их)
  5. Найдите строку в файле, которая начинается Security=....
  6. Скопируйте всю строку в буфер обмена (обратите внимание на Word Wrap, эта строка будет довольно длинной)
  7. Откройте файл lqs для вашей очереди проблем в текстовом редакторе
  8. Перезаписать строку Security=... в этом файле содержимым буфера обмена.
  9. Сохраните измененный файл lqs
  10. Запустите службу MSMQ

Вы должны обнаружить, что проблемная очередь теперь имеет те же разрешения, что и очередь, параметры безопасности которой вы скопировали на шаге 6 выше.

Редактирование значения строки безопасности файла очереди, как объяснено в ответе @scott_lotus, может быть немного подвержено ошибкам, и вы на самом деле понятия не имеете, что вы делаете с ACL очереди. Также, как упомянул @Ish, у вас могут возникнуть проблемы с записью ваших изменений в этот файл, даже когда служба очереди сообщений остановлена.

Лучшим способом сделать это может быть использование оснастки "Active Directory - пользователи и компьютеры", также называемой ADUC (dsa.msc). Убедитесь, что в этой оснастке в разделе "Просмотр" включены следующие параметры "Пользователи, контакты, группы и компьютеры как контейнеры" и "Расширенные функции", которые позволяют найти объект компьютера, на котором размещены ваши очереди MSMQ, разверните его. и вызовите свойства для редактирования ACL контейнера очереди так же, как вы работаете с ACL для файлов / папок (см. пример снимка экрана ниже). Скорее всего, вам нужно будет вступить во владение, прежде чем вы сможете внести какие-либо изменения в ACL.

Другие вопросы по тегам