zoukankan      html  css  js  c++  java
  • 解决COM组件80070005错误

    前段时间在维护公司以前的项目时遇到一个问题,客户需要添加一个word文档合并功能,按理说这功能比较好实现,只要调用Office自带的COM组件就搞定了,但实际上并非如此,在客户端部署上以后运行报错,提示(英文/中文):

    Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.

    检索COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

    在网上搜了解决办法如下:

    1:在服务器上安装office软件.

    2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 

    3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

    4:在"DCOM配置"中找到"Microsoft Word应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Word 应用程序属性"对话框 

    5:点击"标识"标签,选择"交互式用户" 

    6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限. 

    7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 

    好吧,果然没有解决我所遇到的问题,接着找,觉得加identity的方法比较靠谱,于是在web.config中的System.web标签下追加以下配置:

    1. <identity impersonate="true" userName="当前用户名" password="当前密码"/>  

    再次运行,程序完美执行,本以为没事了,可谁曾想水晶报表又出问题了,再次google了以后才知道原来identity 跟水晶报表有冲突,这他喵了个咪的咋整,这identity加上不加上都特么坑爹啊,静下心来仔细想想,既然加上identity后word功能就好用了,那应该是权限的问题。

    难道NETWORK SERVICE权限还不够大众?先将identity这段话删掉,在"Microsoft Word 应用程序属性"对话框里的启动和激活权限、访问权限  上都加上Everyone组的所有特权,问题依旧~!唉。

    正瞅着那堆COM组件愣神的时候,忽然一个COM组件的名字映入眼帘,“Microsoft Office Word 2007 启用宏的文档”,死马当活马医,反正也带着Word两个字,加上Everyone 权限,再次测试,没问题。撤回Everyone 还上当前User,也没问题,竟然就这么解决了,真奇怪了。

    (后来查了下微软文档,原来是跟开发环境有关的,我开发环境的是Office 2010 目标客户机是Office 2003)

    总结加解决方案吧,按照前面给出的1-7的步骤走一遍,只不过要把 Microsoft Word应用程序 和  Microsoft Office Word 2007 启用宏的文档 都配置上权限,如果加上NETWORK SERVICE权限还是不行的话,可以改为加上Everyone权限试试,然后依次缩小权限,直到找到最小权限为止。

  • 相关阅读:
    kubespray -- k8s集群dashboard 访问方式
    calico 原理分析
    云主机被拿去挖矿,cpu暴涨,tcp连接突增
    监控虚拟机跟外部的tcp连接
    rook 排错记录 + Orphaned pod found kube-controller-manager的日志输出
    修改windows7本地策略--不能挂载磁盘和复制 -- 黏贴板-驱动器映射
    MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解
    curl配置host
    博客收藏
    502的几种解决方案
  • 原文地址:https://www.cnblogs.com/CrazyAnts/p/4046416.html
Copyright © 2011-2022 走看看