Что означает код HRESULT 0x80004027 (CO_E_CLASS_DISABLED)?

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

CO_E_CLASS_DISABLED

Точная граница результата

Если возвращён CO_E_CLASS_DISABLED, непосредственно известно следующее: Компонент или содержащее его приложение отключено. Для COM/DCOM это сужает расследование до COM runtime.

Что сохранить до retry

  • запишите CLSID/IID, apartment, caller identity, server process и первый HRESULT исходного COM-вызова. Для условия «Компонент или содержащее его приложение отключено» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
  • снимите в трассировку технические маркеры HRESULT с теми значениями, которые были видны до очистки/rollback; они привязывают «Компонент или содержащее его приложение отключено» к реальному вызову.
  • сохраните момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии COM runtime.

Проверка гипотезы

проверьте одной переменной локализовать первый COM API, после которого состояние отличается от исправного контрольного запуска. Изменяйте только предпосылку, связанную с «Компонент или содержащее его приложение отключено», а регистрацию, identity, входной объект и окружение по возможности оставляйте прежними.

не сводить разные стадии активации, marshaling и lifetime к общему сообщению о сбое COM; для результата «Компонент или содержащее его приложение отключено» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.

Для соседних результатов REGDB_E_CLASSNOTREG сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.

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


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