前段时间在维护公司以前的项目时遇到一个问题,客户需要添加一个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权限试试,然后依次缩小权限,直到找到最小权限为止。

解决COM组件80070005错误的更多相关文章

  1. 【转】怎么解决java.lang.NoClassDefFoundError错误 ,以及类的加载机制

    转自http://blog.csdn.net/jamesjxin/article/details/46606307 前言 在日常Java开发中,我们经常碰到java.lang.NoClassDefFo ...

  2. 【eclipse】 怎么解决java.lang.NoClassDefFoundError错误

    前言 在日常Java开 发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类 明明还在,为什么找不到?而且我 ...

  3. service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误

    service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [root@ctohome.com ~]# service ...

  4. 解决ajax的parsererror错误的终极办法(后台传给前台的数据json问题)

    解决ajax的parsererror错误的终极办法(后台传给前台的数据json问题) 出现这个问题的原因是因为后台传给前台的数据出现了问题,ajax对于json的格式特别的严格 下面是会出现这个问题的 ...

  5. 【转载】重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor ...

  6. 【mysql】service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误

    service MySQL start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [root@ctohome.com ~]# service ...

  7. [转载]解决linux 下多线程错误 undefined reference to `sem_init'

    转自:https://blog.csdn.net/yzycqu/article/details/7396498?utm_source=copy 解决linux 下多线程错误 undefined ref ...

  8. [svc]mount命令及解决因/etc/fstab错误导致系统不能启动故障

    mount命令-手动挂载设备 格式: mount [options] [-t fstype] [-o option] 设备 挂载点 mount -n -o remount,rw / - Mount t ...

  9. 3分钟解决MySQL 1032 主从错误(转)

    转自  https://blog.51cto.com/suifu/1845457 3分钟解决MySQL 1032主从错误 Part1:写在最前 1032错误----现在生产库中好多数据,在从库误删了, ...

随机推荐

  1. hive建表与数据的导入导出

    建表: create EXTERNAL table tabtext(IMSI string,MDN string,MEID string,NAI string,DestinationIP string ...

  2. android 解决ListView点击与滑动事件冲突

    如果你的ListView的Item有滑动功能,但又点击Item跳转到其它activity,这样若是在Adapter里面写点击事件是会导致滑动事件获取不到焦点而失效: 解决方法:不要在adapter里面 ...

  3. CF732D. Exams[二分答案 贪心]

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  4. jenkins, ant, pmd持续集成

    http://pmd.sourceforge.net/pmd-5.0.3/ant-task.html 在jenkins , ant , pmd进行集成的时候,build.xml模板如下,在网上找了一些 ...

  5. PS 切图

    1.选择要切哪一块 比如:要切取人物图片, 会自动选择所选的图层 打开关闭某个图层 然后在图层上点击右键,选择合并组 然后Ctrl+c复制--ctrl+n新建画板--

  6. httpd配置.md

    httpd-2.2 配置 监听端口和IP 配置文件: Listen [IP:]PORT 省略IP表示为0.0.0.0 Listen指令可重复出现多次 修改监听socket,重启服务进程方可生效 可以监 ...

  7. JSPatch

    链接: JSPatch github项目主页 JSPatch技术文档 JSPatch基础用法总结 JSPatch – 动态更新iOS APP JSPatch使用小记 end

  8. 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)

    其他网站开发相关资料            超强HTML和xhtml,CSS精品学习资料下载汇总                                               最新htm ...

  9. HttpClient

    Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且 ...

  10. Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime

    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime        周银辉 我的mac os 版本是10.9.2,  JDK配置得好好的,但打开eclipse时还是提示需 ...