檢索COM類工廠中CLSID...”的兩個錯誤的解決方案
Develop 2008-12-22 21:37 閱讀206 評論1 字型大小: 大
大 中
中 小
小
最近用.net寫了一個相關Excel的B/S的程式,部署到2003企業版的伺服器上遇到這個錯誤:
檢索 COM 類別工廠中 CLSID 為{00024500-0000-0000-C000-000000000046} 的組件時失敗,原因是出現以下錯誤: 80070005。
在網上搜尋一下,找到解決方案,轉貼過來備忘。
http://www.cnblogs.com/PiedPiper/articles/627764.html
然後一切正常。沒想到過了兩天,突然錯誤再次出現。檢查許可權,沒問題啊,真是暈倒。
網上有個朋友建議說裝SP1補丁就好了。但我已經打過補丁了啊。
最後的解決方案:
依據:http://www.cnblogs.com/HQT/archive/2006/05/22/406345.html
做如下操作:
1.開啟excel,按alt + F11,關閉excel和VBA;
2.單擊開始,單擊運行,然後鍵入 DCOMCNFG;
3.點擊元件服務-電腦-我的電腦-DCOM配置,這時彈出一個問註冊的視窗,確定註冊。
這時就一切恢複正常了,不用往下操作了。呵呵
在VS2005裡面卻沒有任何問題,因此得出結論,肯定是許可權問題,查了下資料,問題解決。
具體解決方案如下:
1:在伺服器上安裝office的Excel軟體.
2:在"開始"->"運行"中輸入dcomcnfg.exe啟動"元件服務"
3:依次雙擊"元件服務"->"電腦"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 應用程式",在它上面點擊右鍵,然後點擊"屬性",彈出"Microsoft Excel 應
用程式屬性"對話方塊
5:點擊"標識"標籤,選擇"互動式使用者"
6:點擊"安全"標籤,在"啟動和啟用許可權"上點擊"自訂",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加
一個"NETWORK SERVICE"使用者(注意要選擇本電腦名稱),並給它賦予"本地啟動"和"本地啟用"許可權.
7:依然是"安全"標籤,在"存取權限"上點擊"自訂",然後點擊"編輯",在彈出的"安全性"對話方塊中也填加一個"NETWORK
SERVICE"使用者,然後賦予"本地訪問"許可權.
這樣,我們便配置好了相應的Excel的DCOM許可權.
注意:這是在WIN2003上配置的,在2000,xp上,NETWORK SERVICE使用者改為ASP.net使用者。
這個問題困擾了我好幾天,也花了1天多的時間,仔細的去看,終於解決了。
配置 DCOM 中 EXCEL 應用程式:
要在互動式使用者帳戶下設定 Office Automation 伺服程式,請按照下列步驟操作:
1. 以管理員身份登入到電腦,並使用完整安裝來安裝(或重新安裝)Office。為了實現系統的可靠性,建議您將 Office CD-ROM 中的內容複寫到本地磁碟機並從此位置安裝 Office。
2. 啟動要自動啟動並執行 Office 應用程式。這會強制該應用程式進行自我註冊。
3. 運行該應用程式後,請按 Alt+F11 以載入 Microsoft Visual Basic for Applications (VBA) 編輯器。這會強制 VBA 進行初始化。
4. 關閉應用程式,包括 VBA。
5. 單擊開始,單擊運行,然後鍵入 DCOMCNFG。選擇要自動啟動並執行應用程式。應用程式名稱如下所示:
Microsoft Access 97 - Microsoft Access 資料庫
Microsoft Access 2000/2002 - Microsoft Access 應用程式
Microsoft Excel 97/2000/2002 - Microsoft Excel 應用程式
Microsoft Word 97 - Microsoft Word Basic
Microsoft Word 2000/2002 - Microsoft Word 文檔
單擊屬性開啟此應用程式的屬性對話方塊。
6. 單擊安全選項卡。驗證使用預設的存取權限和使用預設的啟動許可權已選中。
7. 單擊標識選項卡,然後選擇互動式使用者。
8. 單擊確定,關閉屬性對話方塊並返回主應用程式列表對話方塊。
9. 在 DCOM 配置對話方塊中,單擊預設安全性選項卡。
10. 單擊存取權限的編輯預設值。驗證存取權限中是否列出下列使用者,如果沒有列出,則添加這些使用者:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
* 這些帳戶僅在電腦上安裝了 Internet Information Server (IIS) 的情況下才存在。
11. 確保允許每個使用者訪問,然後單擊確定。
12. 單擊啟動許可權的編輯預設值。驗證啟動許可權中是否列出下列使用者,如果沒有列出,則添加這些使用者:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
* 這些帳戶僅在電腦上安裝有 IIS 的情況下才存在。
13. 確保允許每個使用者訪問,然後單擊確定。
14. 單擊確定關閉 DCOMCNFG。
如果你之前起用了身份類比 (在 web.config 中配置了 <identity impersonate= "true "/> ) ,需要刪除之!...