Site icon EfmSoft

Что означает код HRESULT 0x80110605 (COMQC_E_UNAUTHENTICATED)?

 
Предыдущий Следующий
COMQC_E_BAD_MESSAGE COMQC_E_UNTRUSTED_ENQUEUER

COMQC_E_UNAUTHENTICATED

Как расследовать HRESULT COMQC_E_UNAUTHENTICATED

Windows возвращает COMQC_E_UNAUTHENTICATED (0x80110605), когда выполняется следующее условие: Приложение, принимающее только проверенные сообщения, получило сообщение без проверки подлинности.

Старший бит HRESULT делает значение ошибкой. Эта константа объявлена в winerror.h и относится к области «очереди компонентов COM+».

Почему важен контекст вызова

Код относится к COM+ Queued Components. Здесь важны доступность MSMQ, пригодность интерфейса для очереди, сериализуемость вызова и доверие к отправителю; успешная запись сообщения в очередь ещё не доказывает успешное выполнение серверного компонента.

Минимальный набор свидетельств

  • В первичном журнале нужно сохранить имя очереди, Message ID и идентификатор корреляции.
  • На границе сбоя нужно записать интерфейс, IID и вызываемый метод queued-компонента.
  • Для сравнения с исправным случаем нужно проверить состояние MSMQ, права очереди и учётную запись слушателя.
  • До повторной попытки нужно сохранить тело и свойства проблемного сообщения до его перемещения.
  • Для воспроизводимого отчёта нужно зафиксировать AppID COM+ приложения и параметры Queuing Enabled/Listen.

Как локализовать причину

  1. Проверить, что интерфейс отмечен как queueable и параметры метода допускают маршалинг; отдельно отметьте изменение состояния объекта.
  2. Проверить создание и доступность очереди приложения COM+; все остальные условия оставьте неизменными.
  3. Сопоставить отправителя сообщения с политикой аутентификации и доверия; не удаляйте исходные данные до завершения сравнения.
  4. Повторить вызов с минимальным набором параметров и проследить Message ID до получателя; повторите шаг на исправном контрольном примере.
  5. Подтвердить не только удаление сообщения из очереди, но и завершение серверной транзакции; сохраните первый hresult и точное время результата.

Почему queued-сообщение отклонено

Этот результат означает, что принимающее COM+-приложение требует проверенные сообщения, а конкретное сообщение не содержит подтверждённой MSMQ-идентичности. Это не эквивалентно обычному отказу роли внутри уже запущенного компонента.

При проверке этот результат сохраните свойства сообщения, параметры Authentication Level очереди и сертификат отправителя. Затем сравните их с политикой принимающего приложения и доверенными сертификатами MSMQ.

  • Не включайте приём непроверенных сообщений как временное постоянное решение.
  • Подтвердите аутентификацию на одном тестовом сообщении.
  • Проверьте, что после проверки сохраняется ожидаемая личность отправителя.

Полезные материалы


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version