2011-05-18 370 views
6

我有一个本机c + + COM服务器,公开COM接口。我可以成功地使用本地C++客户端应用程序来获取和使用服务器公开的接口。。COM接口COM服务器失败,0x80080005

当我使用.NET客户端与服务器保持一个参考,我得到的错误:

Retrieving the COM class factory for component with CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} failed due to the following error: 80080005 Server execution failed (Exception from 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

你的COM服务器是32位的吗?你运行的是64位.NET CLR吗? – Rup 2011-05-18 13:31:51

+0

COM服务器是32位的。我已经构建了专门用于x86的.net客户端...还有什么需要针对32位CLR? – Ken 2011-05-18 14:06:27

+0

这可能与单个或多个服务器实例有关吗?当注册为服务时,一切正常。客户端可以连接到服务器并完成他们的工作。当注册为本地服务器时,每次尝试客户端连接都会启动服务器的新实例,然后发生0x80080005错误;所以在几次测试之后,我有几个服务器运行的实例,而不是一个。 – Ken 2011-05-20 14:24:04

回答

-2

微软目前并不提倡,不支持,从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务Microsoft Office应用程序自动化),因为Office在此环境中运行时可能会出现不稳定的行为和/或死锁。

欲了解更多信息检查该Link

+0

这个问题与Office无关。 – 2015-06-04 20:01:30

0

用在x64上运行的.NET应用程序尝试连接到一个32位COM应用程序,当我看到这个错误。通过将我的.net应用程序切换到x86(32位),我能够很轻松地修复它。