| Предыдущий | Следующий |
| MQ_ERROR_CANNOT_IMPERSONATE_CLIENT | MQ_ERROR_PRIVILEGE_NOT_HELD |
MQ_ERROR_ACCESS_DENIED
Что означает MQ_ERROR_ACCESS_DENIED
MQ_ERROR_ACCESS_DENIED (0xC00E0025) — Отказано в доступе.
В MSMQ права проверяются для конкретного действия с очередью: открыть на отправку, получать сообщения, читать свойства или менять безопасность. Поэтому общий факт, что процесс работает от администратора, не заменяет проверку ACL самой очереди и фактического токена вызывающего потока.
Что проверить
- Определите неуспешную операцию и требуемое для неё право MSMQ. Права на отправку, получение и администрирование очереди различаются.
- Проверьте SID и группы фактического токена в момент вызова, особенно если служба или COM-компонент использует олицетворение.
- Считайте ACL именно целевой очереди и сравните её с рабочей очередью того же типа. Не выдавайте Full Control как постоянное решение только для проверки гипотезы.
Как подтвердить исправление
Исправление подтверждено, когда исходная операция проходит под прежней учётной записью после минимального изменения ACL или контекста безопасности, а контрольная учётная запись без нужного права по-прежнему получает отказ.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.