最近在处理一个项目时使用到了在word中写入信息的功能,由于系统原来就支持在线打印功能,使用了PageOffice,于是就研究了一下PageOffice,发现Pageoffice不能满足自己的功能(或许是自己没有仔细研究吧,欢迎大家留言),要实现的功能时,依据查询到的信息,每条记录生产一个word文档,同时在单独生产一个word的目录;思考一下:
如果系统要支持在线打印或者预览以后保存:使用PageOffice。
如果是批量生产word文档,则使用C#原生操作比较方便。
下面说一下在在使用C#调用word是碰到的问题:
发现在创建ApplicationClass对象时,报如下错误:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法
于是在网上查了查:解决方法如下:
1:在服务器上安装office的word软件.
2:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
3:依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”
4:在”DCOM配置”中找到”Microsoft word 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft word 应用程序属性”对话框
5:点击”标识”标签,选择”交互式用户”
6:点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加一个”NETWORK SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限.
7:依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK SERVICE”用户,然后赋予”本地访问”权限.
8.如果交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。进一步的解决方式还有待探讨。
9.采用第8点的设置后,打开word 可能会出现“无法使用对象引用或链接”,并且不能进行单元格粘贴。原因不明,取消设置后即可消失。

说明需要授权的用户:networkservices、IIS_Users,IIS,直接使用Winform程序没有该问题。

另外说明:光按以上设置并不能完全保证不出问题,因为调用OFFICE的操作可能涉及其他的系统资源,很可能依然权限不够而导致问题,只是设置EXCEL应用程序后,还是可能会报80070005的错误,最保险的是应该在dcomcnfg中选中我的电脑然后右键属性->com安全,将里面的访问权限,启动和激活权限全都编辑默认,在当中加上network service(iis 5.0的话,要加的是asp.net用户),并如前面对networkservice设置上相同的权限,这样基本上能保证不会再出什么问题。

以上为基本出路方法,但是我也遇到过应用以上方法还是报错的情况,我的环境是windows2003 + office2003+office2007,在测试服务器上都可以导出无任何问题!但是更新了正式环境就是报错,权限都设置了还是报错,因为我的测试服务器是默认office启动的,所以我怀疑是office版本环境问题!于是我卸载了office2007,马上测试ok了,但是重启服务器后就产生了have not been Pre-compiled错误,导出页面都无法打开了,于是我又重新安装了office2007,页面可以打开了,但是导出excel时又开始报错!我又把所有的权限重新设置一遍,问题依旧!后来发现两个服务器默认打开excel的程序不一样,测试环境是默认office2003打开,正式环境是office2007打开,于是我在正式环境重新注册office2003,使其同样也是默认office2003打开程序,靠!问题终于解决了!!!

注册方法 执行 开始—-运行—-输入word2003的安装路径,例如 “C:\Program Files\Microsoft Office\OFFICE11\WINWORD.exe” /regserver 注意/符号前面有一个空格,其中”C:\Program Files\Microsoft Office\OFFICE11\WINWORD.exe” 是excel2003的安装程序的路径,参数regserver表示注册的意思!
运行后,会启动Office 2003的安装程序,进行修复,重新注册。
excel2007为默认的启动程序的方法类同,可以执行 开始—-运行—-“D:\Program Files\Microsoft Office\Office12\WINWORD.exe” /regserver
综上所述,再遇到word导出、导入问题时,先考虑权限问题,再考虑office的版本环境!如此基本能够解决这些问题了

注:使用如下方式打开Dcom时,发现找不到Microsoft Word
控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档

在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,但是却发现找不到Microsoft Excel程序,这主要是64位系统的问题,excel是32位的组件,所以在正常的系统组件服务里是看不到的

可以通过在运行里面输入 comexp.msc -32 来打开32位的组件服务,在里就能看到excel组件了,希望对您有所帮助

Excel组件名称叫”Microsoft Excel Application”或“EXCEL Application”

参考:http://blog.csdn.net/lploveme/article/details/8215265
http://www.cnblogs.com/BoyceLin/archive/2013/03/06/2945655.html

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法相关推荐

  1. 解决Office互操作错误检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005...

    Excel为例(其他如Word也适用)文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是 ...

  2. 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败

    检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 当在ASP.NET应用程序中引 ...

  3. 检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下:...

    检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下: 第 一步:首先将msvcr71.dll,  SQLD ...

  4. 检索 COM 类工厂中 CLSID 为 { } 的组件时失败,原因是呈现以下错误: 80040154

    检索 COM 类工厂中 CLSID 为 { } 的组件时失败,原因是呈现以下错误: 80040154 首先是要确认被调用com是否注册,如果没有注册,需要用管理员身份运行cmd, 进行 regsvr3 ...

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

    检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 在CSDN上总是有网友问这个 ...

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

    使用以上方法必须对dcom进行配置,给用户使用office的权限. 具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行& ...

  7. 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败

    检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005和和8000401a 具体解决方 ...

  8. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败

    使用以上方法必须对dcom进行配置,给用户使用office的权限. 具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行& ...

  9. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问...

    检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问 已重装office2 ...

  10. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开

    我的服务器:windows server 2008(64位)+microsoft office 2007 企业版+windows服务应用程序 业务:调用msdn提供的SaveAsPDFandXPS.e ...

最新文章

  1. android 上传pdf文件,Android 加载PDF文件
  2. topcoder13444
  3. Java中String和byte[]间的转换浅析
  4. 人工智能 | 深度学习最新技术综述(MIT公开课2019)
  5. 战队服务器人员位置,和平精英:职业战队如何分配成员位置?5大定位划出5种职位...
  6. C++_选择结构_单行if语句_多行if语句_多条件if语句_嵌套if语句_三目运算符---C++语言工作笔记016
  7. 如何在没有域的环境中搭建AlwaysOn(一)
  8. 【系统架构】类图怎么画
  9. APP推广的八大“邪恶”方法?做好产品才是王道!
  10. 树莓派3B的默认用户名和密码
  11. 【毕业设计】 基于STM32的人体红外测温枪温度采集系统
  12. 滴滴美团58携程,那些发生在大并购谈判桌背后的故事
  13. 这次跟大家聊聊技术,也聊聊人生
  14. My Neighbor Alice新一轮土地销售分析
  15. r中gglot怎么组合多张图_怎样组合多张ggplot2图片
  16. 【Github万星】50个有趣而又鲜为人知的 Python 特性
  17. vue项目 - 封装loding组件
  18. 打开word出现运行时错误‘-2147418113 (8000fff)‘的解决办法
  19. 使用canal1.1.5让MySQL5.7同步到ES7.x
  20. LCS(longest common sequence)算法的实现(十分详细)

热门文章

  1. 设计程序找出1-100间的质数,显示出来
  2. CSDN中怎么把代码块弄成背景是黑色的
  3. 【券后价19.99元】熊本家紫米面包500g吐司整箱土司奶酪手撕网红早餐切片糕点零食品...
  4. 【PCB布局布线】之蛇行等长布线(转)
  5. C# 删除 Cookie 方法
  6. 项目实战:51单片机超声波水位控制器设计 (源码+PCB+原理图与实物制作)全套资料
  7. iOS开源加密相册Agony的实现(五)
  8. 2018-07-12-flask-04-flask-cacheflask-bootstrapflask-debugtoolbar
  9. 20220322在MT6739的android8.1下增加ll命令
  10. Flutter学习-单子布局Widget