我有一个公开COM接口的本机c ++ COM服务器。我可以成功使用本机c ++客户端应用程序来获取和使用服务器中公开的接口。
当我使用带有服务器引用的.net客户端时,我收到错误:
检索具有CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的组件的COM类工厂因以下错误而失败:80080005服务器执行失败(HRESULT异常:0x80080005(CO_E_SERVER_EXEC_FAILURE))。
...即使COM服务器启动并成功运行(启动只需要大约1或2秒)。
但是只有在服务器注册为本地服务器时才会出现上述错误。如果我将服务器注册为Windows服务,.net客户端可以成功获取并使用接口。
我在Windows 7 64位上以管理员身份做这一切。 COM服务器位于本地计算机上。
我检查了下面的帖子,但没有提供答案: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80080005
到目前为止,在这一天上花了一天半的时间......可能是什么问题?更多信息:
我有这个与vs2005合作。我最近更新到vs2010,现在我遇到了这个问题。我尝试使用相同的结果构建.net客户端定位框架2.0,3.5和4.0。
由于
答案 0 :(得分:0)
当使用在x64上运行的.net应用程序尝试连接到32位COM应用程序时,我看到了这个错误。我可以通过将.net应用程序切换到x86(32位)来轻松修复它。
答案 1 :(得分:-2)
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。
有关详细信息,请查看此Link