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

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

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

3 ответов


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

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


0x80080005 - это "ошибка выполнения сервера", согласно ERRLOOK.ИСПОЛНЯЕМЫЙ. В winerror.h перечисляет это как CO_E_SERVER_EXEC_FAILURE. Не "Доступ Запрещен".


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