最近在做一個(gè).NET的利用Office插件做excel導(dǎo)入導(dǎo)出功能,部署測(cè)試是出現(xiàn)(
檢索 COM 類(lèi)工廠(chǎng)中 CLSID 為{檢索 COM 類(lèi)工廠(chǎng)中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的組件時(shí)失。,網(wǎng)上有好多說(shuō)的,但是我這遇到了點(diǎn)新問(wèn)題。這里做個(gè)備份,也方便和我有同樣問(wèn)題的童鞋。
一、下面的都是一樣的,我直接轉(zhuǎn)載了。
具體配置方法如下:
1:在服務(wù)器上安裝office的Excel軟件.
2:在"開(kāi)始"->"運(yùn)行"中輸入dcomcnfg.exe啟動(dòng)"組件服務(wù)"
3:依次雙擊"組件服務(wù)"->"計(jì)算機(jī)"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 應(yīng)用程序",在它上面點(diǎn)擊右鍵,然后點(diǎn)擊"屬性",彈出"Microsoft Excel 應(yīng)用程序?qū)傩?quot;對(duì)話(huà)框
5:點(diǎn)擊"標(biāo)識(shí)"標(biāo)簽,選擇"交互式用戶(hù)"
6:點(diǎn)擊"安全"標(biāo)簽,在"啟動(dòng)和激活權(quán)限"上點(diǎn)擊"自定義",然后點(diǎn)擊對(duì)應(yīng)的"編輯"按鈕,在彈出的"安全性"對(duì)話(huà)框中填加一個(gè)"NETWORK SERVICE"用戶(hù)(注意要選擇本計(jì)算機(jī)名),并給它賦予"本地啟動(dòng)"和"本地激活"權(quán)限.
7:依然是"安全"標(biāo)簽,在"訪(fǎng)問(wèn)權(quán)限"上點(diǎn)擊"自定義",然后點(diǎn)擊"編輯",在彈出的"安全性"對(duì)話(huà)框中也填加一個(gè)"NETWORK SERVICE"用戶(hù),然后賦予"本地訪(fǎng)問(wèn)"權(quán)限.
8.如果交互式用戶(hù)設(shè)置后出現(xiàn)錯(cuò)誤8000401a,可取消交互式用戶(hù),指定為administratr,可暫時(shí)解決此問(wèn)題。進(jìn)一步的解決方式還有待探討。
9.采用第8點(diǎn)的設(shè)置后,打開(kāi)Excel可能會(huì)出現(xiàn)“無(wú)法使用對(duì)象引用或鏈接”,并且不能進(jìn)行單元格粘貼。原因不明,取消設(shè)置后即可消失。
另外說(shuō)明:光按以上設(shè)置并不能完全保證不出問(wèn)題,因?yàn)檎{(diào)用OFFICE的操作可能涉及其他的系統(tǒng)資源,很可能依然權(quán)限不夠而導(dǎo)致問(wèn)題,只是設(shè)置EXCEL應(yīng)用程序后,還是可能會(huì)報(bào)80070005的錯(cuò)誤,最保險(xiǎn)的是應(yīng)該在dcomcnfg中選中我的電腦然后右鍵屬性->com安全,將里面的訪(fǎng)問(wèn)權(quán)限,啟動(dòng)和激活權(quán)限全都編輯默認(rèn),在當(dāng)中加上network service(iis 5.0的話(huà),要加的是asp.net用戶(hù)),并如前面對(duì)networkservice設(shè)置上相同的權(quán)限,這樣基本上能保證不會(huì)再出什么問(wèn)題。
以上為基本出路方法,但是我也遇到過(guò)應(yīng)用以上方法還是報(bào)錯(cuò)的情況,我的環(huán)境是windows2003 + office2003+office2007,在測(cè)試服務(wù)器上都可以導(dǎo)出無(wú)任何問(wèn)題!但是更新了正式環(huán)境就是報(bào)錯(cuò),權(quán)限都設(shè)置了還是報(bào)錯(cuò),因?yàn)槲业臏y(cè)試服務(wù)器是默認(rèn)office啟動(dòng)的,所以我懷疑是office版本環(huán)境問(wèn)題!于是我卸載了office2007,馬上測(cè)試ok了,但是重啟服務(wù)器后就產(chǎn)生了have not been Pre-compiled錯(cuò)誤,導(dǎo)出頁(yè)面都無(wú)法打開(kāi)了,于是我又重新安裝了office2007,頁(yè)面可以打開(kāi)了,但是導(dǎo)出excel時(shí)又開(kāi)始報(bào)錯(cuò)!我又把所有的權(quán)限重新設(shè)置一遍,問(wèn)題依舊!后來(lái)發(fā)現(xiàn)兩個(gè)服務(wù)器默認(rèn)打開(kāi)excel的程序不一樣,測(cè)試環(huán)境是默認(rèn)office2003打開(kāi),正式環(huán)境是office2007打開(kāi),于是我在正式環(huán)境重新注冊(cè)office2003,使其同樣也是默認(rèn)office2003打開(kāi)程序,靠!問(wèn)題終于解決了。!
注冊(cè)方法 執(zhí)行 開(kāi)始----運(yùn)行----輸入excel2003的安裝路徑,例如 "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" /regserver 注意/符號(hào)前面有一個(gè)空格,其中"C:\Program Files\Microsoft Office\OFFICE11\excel.exe" 是excel2003的安裝程序的路徑,參數(shù)regserver表示注冊(cè)的意思!
運(yùn)行后,會(huì)啟動(dòng)Office 2003的安裝程序,進(jìn)行修復(fù),重新注冊(cè)。
excel2007為默認(rèn)的啟動(dòng)程序的方法類(lèi)同,可以執(zhí)行 開(kāi)始----運(yùn)行----"D:\Program Files\Microsoft Office\Office12\excel.exe" /regserver
一般情況下,遇到Excel導(dǎo)出、導(dǎo)入問(wèn)題時(shí),先考慮權(quán)限問(wèn)題,再考慮office的版本環(huán)境!
二、下面說(shuō)的問(wèn)題是,我的電腦里DCOM配置無(wú)法啟動(dòng)配置,并且沒(méi)有右鍵菜單,解決方法如下。
方法是確保下面的服務(wù)是開(kāi)著的
1、Remote Procedure Call (RPC)
2、COM+ Event System
3、DCOM Server Process Launcher
4、Distributed Transaction Coordinator 然后再進(jìn)入組件服務(wù),就能在DCOM配置中看到右鍵的屬性了,并且組件服務(wù)計(jì)算機(jī)中的"我的電腦"上的那個(gè)紅色的向下箭頭也消失了。
但是在操作過(guò)程中,會(huì)出現(xiàn)Distributed Transaction Coordinator服務(wù)無(wú)法啟動(dòng)的情況。解決方法如下
把 C:\WINDOWS\system32\dtclog 這個(gè)目錄重命名(如果有),然后重新建立該目錄。
在命令行下: msdtc -resetlog