Что означает код HRESULT 0x80004034 (CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN)?

 
Предыдущий Следующий
CO_E_MALFORMED_SPN CO_E_PREMATURE_STUB_RUNDOWN

CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN

Контракт операции

Если возвращён CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN, непосредственно известно следующее: Перед завершением работы апартамента вызывающая сторона не отменила регистрацию, относящуюся к этому апартаменту. Для COM/DCOM это сужает расследование до lifetime COM object/proxy.

Диагностическая выборка

  • запишите object identity, apartment/thread, server PID, AddRef/Release boundary и disconnect/revoke events. Для условия «Перед завершением работы апартамента вызывающая сторона не отменила регистрацию, относящуюся к этому апартаменту» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
  • приложите к инциденту технические маркеры CoUninitialize, HRESULT с теми значениями, которые были видны до очистки/rollback; они привязывают «Перед завершением работы апартамента вызывающая сторона не отменила регистрацию, относящуюся к этому апартаменту» к реальному вызову.
  • снимите в трассировку момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии lifetime COM object/proxy.

Безопасное воспроизведение

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

не считать повторный вызов того же disconnected proxy восстановлением соединения; для результата «Перед завершением работы апартамента вызывающая сторона не отменила регистрацию, относящуюся к этому апартаменту» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.

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

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


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