Что означает код HRESULT 0x80004029 (CO_E_ASYNC_WORK_REJECTED)?

 
Предыдущий Следующий
CO_E_CLRNOTAVAILABLE CO_E_SERVER_INIT_TIMEOUT

CO_E_ASYNC_WORK_REJECTED

Что означает результат

CO_E_ASYNC_WORK_REJECTED: COM не принял новую асинхронную работу в текущем состоянии исполнительной среды. Это отказ постановки конкретной работы, а не доказательство повреждения COM-регистрации или самого вызываемого объекта.

Что проверить

  • Зафиксируйте API, которым ставится работа, состояние apartment и момент относительно завершения или остановки объекта.
  • Проверьте, не идёт ли уже shutdown, cancellation или teardown пула, из-за которого новые задания больше не принимаются.
  • Сохраните длину очереди и первый HRESULT до повторов; серия немедленных повторов может скрыть переход состояния.
  • Убедитесь, что объект и callback остаются действительными на всё время асинхронной операции.

Диагностика и исправление

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

Технические ссылки


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