Извлечение COM-класса factory для компонента с CLSID {XXXX} не удалось из-за следующей ошибки: 80080005

Каков процесс устранения неполадок для "Извлечение COM-класса factory для компонента с CLSID {XXXX} не удалось из-за следующей ошибки: 80080005" ошибок в .Net? Чтобы уточнить: я получаю это во время выполнения на моей машине XP, а клиент - это код .net, запущенный под учетной записью администратора. {XXXX} относится к одному из наших внутренних компонентов COM.

Из того, что я понимаю, 0x80080005 ссылается на "разрешение отклонено", но куда я могу проверить/изменить разрешения? Или я совершенно не прав здесь, и ошибка исходит от самого компонента, а не из подсистемы Windows COM?

Ответ 1

Кажется, это довольно общая ошибка, связанная с запуском COM-сервера. Возможные проблемы включают таймауты, ошибки входа в систему (проверьте Q о CO_E_SERVER_EXEC_FAILURE) или разрешения безопасности или (очевидно) VS2008 ATL ошибка. Думаю, что ошибка в CreateInstance тоже сделала бы трюк.

Я бы начал с проверки журнала событий на что-нибудь интересное.

Ответ 2

0x80080005 "Ошибка выполнения сервера", в соответствии с ERRLOOK.EXE. WinError.h перечисляет это как CO_E_SERVER_EXEC_FAILURE. Не "Доступ запрещен".

Ответ 3

Одна вещь, на которую вы можете обратить внимание, - это конфигурация безопасности DCOM. Он управляется утилитой dcomcnfg. полезные обучающие видео в Интернете, чтобы объяснить, как его использовать. Существует также поток на форуме ASP.NET, в котором обсуждается, как использовать dcomcnfg.