2012-02-01 72 views
1

我有一個加載32位COM組件的Web服務。我在本地機器上使用IIS服務器運行此Web服務。錯誤檢索組件的COM類工廠

當我打開從Visual Studio成功,而另一方面的測試頁,同時使用IIS加載它,它顯示以下錯誤

Retrieving the COM class factory for component XXX failed due to the following error: 80070005. 

我試圖從任何CPU改變web服務的平臺,x86的但是這有助於。我在Windows Server 2008 R2上運行這個64位。

回答

1

我不得不啓用從應用程序池設置的32位應用程序。

0

檢查該COM的權限。這可能是因爲當你從VS運行測試時,你運行的是(admin),而運行網站應用程序池的用戶則完全不同。該用戶需要爲「本地」添加讀取+執行(或,激活,無論)權限。

也許也看到這一點:Retrieving the COM class factory for component error while generating word document

+0

感謝您的回覆。當我直接從資源管理器(在當前用戶權限下)運行時,它工作正常。另一方面,如果我從IIS執行,它顯示這個錯誤 – sarat 2012-02-01 12:56:07

+0

這就是爲什麼我告訴你檢查權限,以激活和執行該COM應用程序爲運行您的網站的應用程序池的用戶。 – 2012-02-01 14:24:45

+0

對不起,我的無知。我是IIS和webservices的新手。當右鍵單擊並瀏覽Web服務時,它將顯示帶有可用公用方法的默認頁面。服務將運行在哪個憑據下?它會與當前登錄的用戶憑據一起運行嗎?如何檢查,否則? – sarat 2012-02-02 04:59:26

0

薩拉特,這不可能是正確的。應用程序池默認值下的「啓用32位應用程序」不適用於運行32位應用程序或解決您的問題。它只能在32位進程下強制運行32位應用程序,在這種情況下這不是必需的。大多數32位應用程序在64位進程上運行良好。這就是爲什麼您可以在Windows 7 64位機器上運行MS Office 2010(仍然是32位應用程序)的原因。

在接近原始問題的近一整年之後,您必須嘗試其他設置並將其設置爲true。