Что означает код HRESULT 0x8001012E (CO_E_CONVERSIONFAILED)?

 
Предыдущий Следующий
CO_E_INVALIDSID CO_E_NOMATCHINGSIDFOUND

CO_E_CONVERSIONFAILED

Где искать первичный отказ

CO_E_CONVERSIONFAILED означает: Не удалось преобразовать строку доверенного лица из расширенных символов в многобайтовую кодировку. Для области COM/DCOM это указывает на границу «OLE persistence / conversion», поэтому первичную проверку нужно привязать к операции, которая вернула код.

Минимальный набор фактов

  • сохраните storage/stream format, CLSID metadata, stream version и исходный serialized payload hash. Для условия «Не удалось преобразовать строку доверенного лица из расширенных символов в многобайтовую кодировку» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
  • запишите технические маркеры RPC, HRESULT, sid, SID, Sid с теми значениями, которые были видны до очистки/rollback; они привязывают «Не удалось преобразовать строку доверенного лица из расширенных символов в многобайтовую кодировку» к реальному вызову.
  • зафиксируйте момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии OLE persistence / conversion.

Контроль после изменения

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

не перезаписывать исходное хранилище до проверки версии и class identity на копии; для результата «Не удалось преобразовать строку доверенного лица из расширенных символов в многобайтовую кодировку» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.

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

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


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