| Предыдущий | Следующий |
| 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 сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.
Технические ссылки
- Microsoft: COM security defaults
- Microsoft: HRESULT values
- Microsoft: COM error codes
- Портал COM для Windows
- Microsoft: CoCreateInstance
Нужно найти другой код? Найти другой код состояния или ошибки.