生成word文檔的功能,期間出現了幾個(gè)問(wèn)題,也不算棘手,但是對于第一次使用office組件的人來(lái)說(shuō),就比較麻煩了,也不知道為何出現這個(gè)錯誤,其中本問(wèn)題解決費的時(shí)間較多,特此記錄,以后方便查閱。
先將問(wèn)題的場(chǎng)景大體介紹一下:
??1、客戶(hù)端及服務(wù)端安裝的辦公軟件為office;
??2、已存在使用Microsoft.Office.Interop.Word.dll生成word文檔的代碼,客戶(hù)端(包括服務(wù)端上的客戶(hù)端)使用時(shí)除表格無(wú)法生成,新建文檔、插入數據、保存文檔接口正常使用,無(wú)出現問(wèn)題;
??3、先因業(yè)務(wù)需求,需要將該代碼,運行在服務(wù)端的iis里面(雖說(shuō)office不適合運行在服務(wù)端,但時(shí)間不允許重新開(kāi)發(fā)),首先拋出?80040154 沒(méi)有注冊類(lèi)?的錯誤,這個(gè)錯誤安裝office即可,不過(guò)多糾結;
??4、office安裝完畢之后,代碼運行時(shí)拋出此錯誤:80070005 拒絕訪(fǎng)問(wèn)
?
解決方案:
??1、運行dcomcnfg.exe打開(kāi)組件服務(wù);
??2、依次展開(kāi)"組件服務(wù)"->"計算機"->"我的電腦"->"DCOM配置"->"Microsoft Word 文檔"
????
??3、右鍵打開(kāi)“屬性”對話(huà)框,點(diǎn)擊“標識”選項卡,選擇交互式用戶(hù);點(diǎn)擊“安全”選項卡,“啟動(dòng)和激活權限”、“訪(fǎng)問(wèn)權限”選擇自定義
????
??4、編輯啟動(dòng)和激活權限權限的自定義選項,將NETWORK SERVICE(也有說(shuō)法需要IIS_IUSERS和everyone用戶(hù))添加進(jìn)去,給與本地激活和遠程激活的權限,訪(fǎng)問(wèn)權限相同
????
??5、或許設置完以上代碼就可以正常運行,但是我的代碼還是拋出錯誤,這里再配置web.config的
? ? ? ? 6、在網(wǎng)上找了都是上面的這個(gè)方法,然而并沒(méi)有什么卵用!百思不得其解,也嘗試過(guò)修改注冊表(發(fā)現clsid:00020906-0000-0000-C000-000000000046?word 97文檔),跟報的錯誤000209FF-0000-0000-C000-000000000046 不一樣,想修改又糾結,后來(lái)看了一篇論壇無(wú)意中看到了以下解決方案;于是把目光投進(jìn)了服務(wù)器IIS的身上;
只要修改IIS的應用程序池,選擇你的項目,點(diǎn)擊高級設置,標識改為:LocalSystem 或NetworkService;