zoukankan      html  css  js  c++  java
  • 调用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 组件。

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

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

  • 相关阅读:
    C# VideoAPI
    C# 列出进程
    利用SQL为Code128码添加起始符和休止符
    SQL sysobjects 表 详解
    跳过从Win7/8升级,直接格式化全新安装 Windows 10 并自动永久激活系统的方法教程
    SQL EXCEPT INTERSECT
    C# 重启程序本身
    SQL HAVING 子句使用
    SQL over的作用及用法
    SQL 游标 Cursor 基本用法
  • 原文地址:https://www.cnblogs.com/skyheaving/p/11660512.html
Copyright © 2011-2022 走看看