檢索 COM 類工廠中 CLSID 為 {00021A20-0000-0000-C000-000000000046} 的組件時失敗
或者
在項目中將數據導出為Excel格式時出現“檢索COM 類工廠中CLSID 為 {00024500-0000-0000-C000-000000000046}的組件時失敗,原因是出現以下錯誤: 80070005”,
1:在服務器上安裝office的Excel軟件.
2:在"開始"->"運行"中輸入dcomcnfg.exe啟動"組件服務"
3:依次雙擊"組件服務"->"計算機"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 應用程序",在它上面點擊右鍵,然后點擊"屬性",彈出"Microsoft Excel 應 用程序屬性"對話框
5:點擊"標識"標簽,選擇"交互式用戶"
6:點擊"安全"標簽,在"啟動和激活權限"上點擊"自定義",然后點擊對應的"編輯"按鈕,在彈出的"安全性"對話框中填加 一個"NETWORK SERVICE" 和 "ASP.net"用戶(注意要選擇本計算機名),并給它賦予"本地啟動"和"本地激活"權限.
7:依然是"安全"標簽,在"訪問權限"上點擊"自定義",然后點擊"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK SERVICE" 和 "ASP.net"用戶,然后賦予"本地訪問"權限. 這樣,我們便配置好了相應的Excel的DCOM權限.
注意:這是在WIN2003上配置的,在2000上,可能是配置ASPNET用戶 由于EXCEL是在服務器上打開的,所以應該寫一個把導出數據保存在服務器上,然后再傳遞給客戶端的方法,最后每次調 用這個功能的時候再刪除以前在服務器上所生成的所有Excel
如果還是不行,試著按照上面的步驟添加如下帳號的訪問權限:IUSER_計算機名(Internet 來賓帳戶) 和 IWAW_你的計算機名(啟動 IIS 進程帳戶)
另外,我做了個測試,如果在配置Microsoft Excel 應用程序時沒有配置“標識”中的“交互式用戶”,將出現如下錯誤:
"從 IClassFactory 為 CLSID 為 {00024500-0000-0000-C000-000000000046} 的 COM 組件創建實例失敗,原因是出現以下錯誤: 8001010a。”
引用服務器上的Excel版本
1、從服務器上把EXCEL.EXE拷到了本機上,然后從VS2010的命令行啟動TlbImp,執行命令:TlbImp /out:Interop.Excel.dll Excel.exe。生成Interop.Excel.dll。
2、在項目中去除了Microsoft.Office.Interop.Excel.dll的引用,添加Interop.Excel.dll,將頂部的using Excel=Microsoft.Office.Interop.Excel,該為using Excel= Interop.Excel,
檢索COM 類工廠中CLSID 為 {00024500-0000-0000-C000-000000000046}的組件時失敗 解決方法
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
