最近一直在處理一個項目,項目主要功能與Office-Word 有關,主要涉及到文本內容編輯與樣式設置等相關內容。因項目依賴office 相關dll,需要兼容多種Office 版本(office 2007/2010/2016)(主要在Windows7/10下使用)。項目使用Winform,采用webBrowser嵌入weboffice 形式,調用服務進行功能實現。
在使用初期,發現服務無法正常使用,日志記錄:word 對象無法打開文件,可能文件損壞,或權限不足。
查閱資料,定位為office的 Word com組件權限不夠,需要處理調用的組件權限。
先在安裝office 32位的環境上測試:
1、打開 Win+R ,輸入 comexp.msc -32 ,然后 回車:
2、就可以看到 “組件服務” 窗口;依次選擇打開 : 控制台根節點==》組件服務==》計算機==》我的電腦==》DCOM 配置==》找到Microsoft Office Word 97 - 2003 文檔
3、==》選擇 Microsoft Office Word 97 - 2003 文檔 ,右擊選擇 屬性。按下面操作步驟進行配置。
在安全選項卡中,依次編輯 啟動和激活權限、訪問權限、配置權限;==》選擇自定義, 點擊 編輯==.》組或用戶名 ,添加 everone 權限((授予)勾選所有system 權限)==》確定。
4、==》選擇 標識 ,更改 運行賬戶為 交互式用戶==》 應用/確定 。配置完成。
附:
寫到這里,Com 組件權限配置基本結束了。
這里有幾個問題:
1、如果安裝的是Office 64 位出現這種情況怎么辦?
2、如果我不使用Windows 命令能否操作?
對於問題1,暫時沒有很好的解決方案;目前是計划后期更改程序底層Com 組件的功能依賴,使程序在Windows 10下不依賴Office-Word 的Com組件;因為測試發現,在Windows10 下配置com 組件后,功能很不穩定。在安裝office 32 位的Windows 10系統下,測試發現Com 組件的屬性標識改為啟動用戶能夠正常使用一段時間,過段時間,屬性標識再改成 交互式用戶就又正常了。(64位Office 下 命令打開Com 組件: (Win+R )+Dcomcnfg==》 回車 查看方式與 32 位一致。)如果有遇到類似問題解決的,歡迎評論。
問題2: 打開Com 組件的方式很多: 可以直接在控制面板進行打開:控制面板==》管理工具==》組件服務==》組件服務列表中:選擇組件服務==》計算機==》我的電腦==》DCOM配置。(以安裝32 位Office 的環境為例,我通過這種控制面板方式打開的Word com組件中:
Microsoft Word 97 - 2003 文檔的屬性中 常規:本地路徑為空,身份驗證級別 :無;
位置選項卡中 : 在此計算機上運行應用程序 置灰,無法勾選。
非管理員用戶:administrator 用戶下新建的其他用戶,權限隸屬於 administrator。
)
(Win+R )+Dcomcnfg==》 回車 --打開64位Office 的Com 組件。
(Win+R )+comexp.msc -32==》 回車 --打開32位Office 的Com 組件。
上面為處理過程,如有描述不合理之處,請大家多多指教。
如果您覺得本文對您有幫助,歡迎點擊“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎轉載,轉載請注明出處。