Что означает код HRESULT 0x80004015 (CO_E_WRONG_SERVER_IDENTITY)?

 
Предыдущий Следующий
CO_E_BAD_SERVER_NAME CO_E_OLE1DDE_DISABLED

CO_E_WRONG_SERVER_IDENTITY

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

CO_E_WRONG_SERVER_IDENTITY фиксирует состояние Класс настроен для запуска с идентификатором безопасности, отличным от идентификатора вызывающей стороны. В COM/DCOM полезно считать его маркером стадии «активация COM-сервера», а не общим признаком повреждения всей конфигурации.

Свидетельства до исправления

  • снимите в трассировку CLSID/IID, CLSCTX, server name, PID, LocalServer32/AppID и события SCM/server startup. Для условия «Класс настроен для запуска с идентификатором безопасности, отличным от идентификатора вызывающей стороны» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
  • приложите к инциденту технические маркеры RunAs, LocalService, CO_E_RUNAS_LOGON_FAILURE, CLSID, AppID с теми значениями, которые были видны до очистки/rollback; они привязывают «Класс настроен для запуска с идентификатором безопасности, отличным от идентификатора вызывающей стороны» к реальному вызову.
  • сохраните момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии активация COM-сервера.

Отделение соседних состояний

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

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

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

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


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