| Предыдущий | Следующий |
| COMQC_E_UNAUTHENTICATED | MSDTC_E_DUPLICATE_RESOURCE |
COMQC_E_UNTRUSTED_ENQUEUER
Как расследовать HRESULT COMQC_E_UNTRUSTED_ENQUEUER
Код COMQC_E_UNTRUSTED_ENQUEUER, числовое значение 0x80110606, фиксирует конкретный результат операции. Сообщение повторно помещено в очередь или перемещено пользователем, не входящим в роль QC Trusted User.
Для COMQC_E_UNTRUSTED_ENQUEUER старший бит HRESULT делает значение ошибкой. Константа COMQC_E_UNTRUSTED_ENQUEUER объявлена в winerror.h и относится к области «очереди компонентов COM+».
Контекст подсистемы
Для COMQC_E_UNTRUSTED_ENQUEUER код относится к COM+ Queued Components. Для COMQC_E_UNTRUSTED_ENQUEUER здесь важны доступность MSMQ, пригодность интерфейса для очереди, сериализуемость вызова и доверие к отправителю; успешная запись сообщения в очередь ещё не доказывает успешное выполнение серверного компонента.
Для COMQC_E_UNTRUSTED_ENQUEUER не следует начинать с очистки состояния или переустановки компонента. Для COMQC_E_UNTRUSTED_ENQUEUER сначала необходимо привязать результат к одному вызову, объекту и поколению его состояния.
В имени COMQC_E_UNTRUSTED_ENQUEUER закодированы ориентиры для расследования: COMQC — технический признак «comqc»; UNTRUSTED — технический признак «untrusted»; ENQUEUER — технический признак «enqueuer». Для COMQC_E_UNTRUSTED_ENQUEUER эти ориентиры задают конкретный предмет проверки, но не заменяют контракт вызвавшего API.
Смысл результата: признаки в имени константы
Для COMQC_E_UNTRUSTED_ENQUEUER часть COMQC относится к области «технический признак «comqc»». При разборе COMQC_E_UNTRUSTED_ENQUEUER проверьте, какое состояние этого объекта ожидалось и какое наблюдалось реально.
При разборе COMQC_E_UNTRUSTED_ENQUEUER обозначение UNTRUSTED связывает код с темой «технический признак «untrusted»». До повторной проверки COMQC_E_UNTRUSTED_ENQUEUER сохраните входные данные без нормализации.
Маркер ENQUEUER в COMQC_E_UNTRUSTED_ENQUEUER направляет проверку на технический признак «enqueuer». Для COMQC_E_UNTRUSTED_ENQUEUER сопоставьте этот признак с фактическими параметрами первого неуспешного вызова.
Для COMQC_E_UNTRUSTED_ENQUEUER в техническом контексте особенно важны: закрытый ключ, провайдер. При расследовании COMQC_E_UNTRUSTED_ENQUEUER их следует проверять как связанные части одной операции, а не как независимые симптомы.
Диагностические данные
- Для сравнения с исправным случаем по
COMQC_E_UNTRUSTED_ENQUEUERнужно сохранить имя очереди, Message ID и Correlation ID. - До повторной попытки по
COMQC_E_UNTRUSTED_ENQUEUERнужно записать интерфейс, IID и вызываемый метод queued-компонента. - Для воспроизводимого отчёта по
COMQC_E_UNTRUSTED_ENQUEUERнужно проверить состояние MSMQ, права очереди и учётную запись слушателя. - В первичном журнале по
COMQC_E_UNTRUSTED_ENQUEUERнужно сохранить тело и свойства проблемного сообщения до его перемещения. - На границе сбоя по
COMQC_E_UNTRUSTED_ENQUEUERнужно зафиксировать AppID COM+ приложения и параметры Queuing Enabled/Listen.
Проверка по шагам
- Для
COMQC_E_UNTRUSTED_ENQUEUER: Проверить, что интерфейс отмечен как queueable и параметры метода допускают маршалинг; все остальные условия оставьте неизменными. - Для
COMQC_E_UNTRUSTED_ENQUEUER: Проверить создание и доступность очереди приложения COM+; не удаляйте исходные данные до завершения сравнения. - Для
COMQC_E_UNTRUSTED_ENQUEUER: Сопоставить отправителя сообщения с политикой аутентификации и доверия; повторите шаг на исправном контрольном примере. - Для
COMQC_E_UNTRUSTED_ENQUEUER: Повторить вызов с минимальным набором параметров и проследить Message ID до получателя; сохраните первый hresult и точное время результата. - Для
COMQC_E_UNTRUSTED_ENQUEUER: Подтвердить не только удаление сообщения из очереди, но и завершение серверной транзакции; отдельно отметьте изменение состояния объекта.
Корректирующие действия
Корректирующее действие для COMQC_E_UNTRUSTED_ENQUEUER должно устранять условие «Сообщение повторно помещено в очередь или перемещено пользователем, не входящим в роль QC Trusted User» на уровне закрытый ключ. Для COMQC_E_UNTRUSTED_ENQUEUER простое подавление HRESULT, бесконечный повтор или очистка всех настроек не доказывают восстановление контракта.
Для COMQC_E_UNTRUSTED_ENQUEUER после изменения повторите первоначальный сценарий, затем воспроизведите ближайшее ошибочное условие. Для COMQC_E_UNTRUSTED_ENQUEUER это подтверждает, что устранена причина, а не только изменён путь обработки ошибки.
Документация
- Microsoft: COM коды ошибок — COMQC_E_UNTRUSTED_ENQUEUER
- Microsoft: Microsoft: using the queue moniker — COMQC_E_UNTRUSTED_ENQUEUER
- Microsoft: Microsoft: COM+ queued components tasks — COMQC_E_UNTRUSTED_ENQUEUER
- Microsoft: Microsoft: Message Queuing — COMQC_E_UNTRUSTED_ENQUEUER
- Очереди компонентов COM+ — COMQC_E_UNTRUSTED_ENQUEUER
Нужно найти другой код? Найти другой код состояния или ошибки.
