Не удалось получить фабрику классов 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.