У меня есть собственный C ++ COM-сервер, который предоставляет COM-интерфейсы. Я могу успешно использовать нативное клиентское приложение c ++ для получения и использования открытых интерфейсов с сервера.
Когда я использую клиент .net со ссылкой на сервер, я получаю сообщение об ошибке:
Получение фабрики классов COM для компонента с CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} не удалось из-за следующей ошибки: 80080005 Ошибка выполнения сервера (исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
... несмотря на то, что COM-сервер запускается и работает успешно (запуск занимает всего 1 или 2 секунды).
НО я получаю вышеуказанную ошибку только тогда, когда сервер зарегистрирован как локальный сервер. Если я зарегистрирую сервер в качестве службы Windows, клиент .net сможет успешно получить и использовать интерфейсы очень хорошо.
Я делаю все это как администратор в Windows 7 64-bit. COM-сервер находится на локальной машине.
Я проверил тему ниже, но ответы не были предложены:
Не удалось получить фабрику класса COM для компонента с CLSID {XXXX} из-за следующей ошибки: 80080005
До сих пор провел на этом полтора дня ... в чем может быть проблема?
Дополнительная информация:
У меня было это работает с vs2005. Я недавно обновился до vs2010 и сейчас сталкиваюсь с этой проблемой. Я попытался создать .NET-клиент, нацеленный на платформы 2.0, 3.5 и 4.0, с теми же результатами.
Спасибо