2009-05-19 68 views
20

我正在使用excel對象(COM組件)進行excel操作。它工作正常,我的電腦,但是當我將應用程序部署到我們的內聯網我收到此錯誤:檢索COM類工廠的組件失敗

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005

我使用Windows身份驗證和模擬=真在我web.config

我做了組件服務中的所有設置,但它仍然給出了相同的錯誤。

請幫

+1

您是否找到了解決此問題的解決方案?我只是用同樣的問題來解決這個問題。我正在運行一個VB.Net應用程序,**不是** Asp.Net。 – 2011-02-16 18:45:26

+0

沒關係,我不得不從Office安裝程序安裝Excel的.Net功能。傻我 – 2011-02-16 19:01:38

回答

5

還有一個更多,如果你使用的是的Windows 2008服務器IIS7你可能需要解決的問題。服務器可能會報告以下錯誤:

Microsoft Office Excel無法訪問文件'c:\ temp \ test.xls'。有幾種可能的原因:

  • 文件名或路徑不存在。
  • 該文件正在被另一個程序使用。
  • 您試圖保存的工作簿與當前打開的工作簿具有相同的名稱。

該解決方案張貼在這裏(找張貼用戶小川文):http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof=required

+1

+1000服務器2008 x64添加文件夾`C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop`賓果遊戲!!! – dotjoe 2011-09-13 14:41:57

+0

它拯救了我的一天。 – mike27015 2013-07-10 08:43:33

2

在情況下,它可以幫助別人:

我運行Windows 7 64位,我想註冊一個32位dll。

首先我嘗試:REGSVR32和得到了以下錯誤:

System.Runtime.InteropServices.COMException(0x80040154的):檢索COM類工廠具有CLSID部件{A1D59B81-C868-4F66-B58F-AC94A4A7982E}由於未能出現以下錯誤:80040154

然後我試圖通過組件服務添加應用程序(運行 - > DCCOMCNFG)(http://www.justskins.com/forums/difference-registering-dll-using-regsvr32-and-component-services-17280.html),並得到了以下錯誤:

System.UnauthorizedAccessException的:檢索COM CLSID {A1D59B81-C868-4F66-B5 8F-AC94A4A7982E}失敗,原因是出現以下錯誤:80070005。

有許多環節解決,但什麼工作對我來說是: 控制檯根目錄 - >組件服務 - >計算機 - >我的電腦 - > COM +應用程序 - > - >屬性:安全性選項卡:授權:取消選中「強制執行對此應用程序的訪問檢查」。

我不知道它在做什麼。

3

這爲我做的伎倆: (從msdn forum溶液)

goto Controlpanel --> Administrative tools-->Component Services -->computers --> myComputer -->DCOM Config --> Microsoft Excel Application.

right click to get properties dialog. Goto Security tab and customize permissions accordingly.

在啓動和應用程序的權限,選擇自定義,編輯。添加調用應用程序的用戶/組。

4

您也將獲得這個錯誤時有系統陳舊EXCEL.EXE進程(使用Task Manager --> Processes標籤來查看這些。)

殺死所有這些實例和應用程序將正常工作。

0

您描述的CLSID適用於Microsoft.Office.Interop.Excel.ApplicationClass。這個類基本上通過InprocServer32啓動excel.exe。如果你沒有安裝它,那麼它會返回你上面收到的錯誤信息。

20

我在部署我的應用程序時發生了同樣的錯誤。我已經得到了解決,從這個網站:Component with CLSID XXX failed due to the following error: 80070005 Access is denied

下面是該解決方案:

  1. DCOMCNFG,右鍵單擊我的電腦,選擇性能

  2. 選擇COM證券標籤。

  3. 訪問權限,單擊編輯默認值並添加網絡服務到它,並給它允許本地訪問許可。對於<機器名> \用戶執行相同操作。

  4. 啓動和激活權限,單擊編輯默認值並添加網絡服務到它,並給它本地啓動本地激活許可。對於<機器名> \用戶執行相同操作。

*我使用了表單認證。

0

對於IIS 8,我做了與Monic基本相同的事情。我將我的應用程序作爲自己的應用程序池在x64機器上運行1.在DCOMCNFG中,右鍵單擊我的電腦並選擇屬性。

2.選擇COM證券標籤。

3.在訪問權限中,單擊編輯默認值並添加iis apppool \ myapp併爲其授予本地訪問權限。對iis apppool執行相同的操作\ myapp

4。在啓動和激活權限中,單擊編輯默認值,然後將iis apppool \ myapp添加到它,併爲其提供本地啓動和本地激活權限。對iis apppool \ myapp執行相同的操作。

另外我不得不作出在C中列出的文件夾:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \ Desktop和授予讀\寫權限的IIS應用程序池\ MYAPP也

0

我能理解你的痛苦。在我的情況下,錯誤通過執行以下步驟得到解決:

  1. 開始>運行> dcomcnfg。
  2. 打開文件夾DCOM配置並選擇組件服務>計算機>我的電腦> DCOM配置。
  3. 選擇「Microsoft Office Word 97 - 2003文檔」/「Microsoft Excel Application」並轉到其屬性。
  4. 在「安全」選項卡設置「啓動和激活權限」需要自定義(授權用戶)。
  5. 現在轉到IIS並選擇Web的應用程序池並轉到其高級設置並選擇「NETWORK SERVICE」作爲標識用戶。

希望這會有所幫助。