调用office Word Com 组件,提示权限不足处理

Posted skyheaving

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用office Word Com 组件,提示权限不足处理相关的知识,希望对你有一定的参考价值。

最近一直在处理一个项目,项目主要功能与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 组件。

 

上面为处理过程,如有描述不合理之处,请大家多多指教。

如果您觉得本文对您有帮助,欢迎点击“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎转载,转载请注明出处。

 

以上是关于调用office Word Com 组件,提示权限不足处理的主要内容,如果未能解决你的问题,请参考以下文章

关于office版本冲突, office com组件调用.

通过 COM 读取 Office PPT 文件提示 COMException 错误码 0x80004005 可能原因

解决PHP调用Word组件DCOM权限问题

解决PHP调用Word组件DCOM权限问题

Windows:Word,PPT,EXCEL com+组件配置

IIS 调用Microsoft.Office.Interop.Word.Documents.Open 返回为null