2011-05-18 373 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位),我能夠很輕鬆地修復它。