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

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

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

Ответы [ 3 ]

9 голосов
/ 11 ноября 2008

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

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

1 голос
/ 11 ноября 2008

0x80080005 - «Ошибка выполнения сервера», согласно ERRLOOK.EXE. WinError.h перечисляет это как CO_E_SERVER_EXEC_FAILURE. Не «Отказано в доступе».

0 голосов
/ 06 ноября 2009

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

...