.Net调用Office Com组件的原理及问题:检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败
2017-04-02 22:51
579 查看
.Net调用Office Com组件的原理及问题:检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败
Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂中 CLSID 为 XXX 的组件失败现将文章整理如下
最开始报错
总结如下
我的主页 www.csxiaoyao.com
最近在本地64位win10操作系统+vs2015+office2010(卸载了2016,因为高版本反而不支持),做PPT文档的解析成HTML,在部署到windows server 2012上的时候遇到了不少麻烦,恰好见到两篇文章,得以解决。
文章1链接:http://www.cnblogs.com/xuxin-1989/p/3941056.html
文章2链接:http://www.cnblogs.com/yumianhu/p/3710733.html
现将文章整理如下:
最开始报错:
Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80040154 没有注册类 (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).最开始想到的原因,我的服务器有好几个虚机,其中有好使的,这个不好使难道是因为Excel和ppt是单独安装的,office装的不全,组件没注册上?
在网上(http://support.microsoft.com/kb/828550/zh-cn)查到CLSID 为{91493441-5A91-11CF-8700-00AA0060263B}的组件是office的这个服务owerPoint.Application ,我想既然报错没注册,那就注册吧,在网上找的资料都说要通过C:WindowsSysWOW64 regsvr32注册组件,费了很大的劲也没弄明白要注册哪个dll,最后卸载office,重新安装,报错
Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80070005 拒绝访问。 (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
再接着在网上查资料,说卸载的不干净,要把注册表也删除,好吧,再接再厉重新安装,还是报(2)错,想着是拒绝访问,那是缺少权限啊,根据网上的各种配置权限,还是报错,改变方向,网上(http://edu.cnzz.cn/200810/6270283a.shtml)找到原因可能是在Windows Server 2008 X64中通过.NET程序调用32位com组件的问题,按照其说的,在Visual Studio中,将编译的目标平台(Platform target)设置为:X86,然后重新统计发布项目,错误依旧。
最后终于发现问题,DCOM配置中一直配置的是【Microsoft Office PowerPoint 预览器】 原来一直都配置错地方了,可是DCOM中也没有【Microsoft Office PowerPoint 幻灯片】啊,原来服务器是64位了,没有加载32位的组件,运行中敲入mmc -32,在控制台中‘文件’‘添加/删除管理单元’选择‘组件服务’添加,就会出现【Microsoft Office PowerPoint 幻灯片】,再把一些权限配置上就搞定了。
总结如下:
.net调用office组件进行Excel、Word、ppt的一些操作,需要做一下操作:1. 正确全面的安装office
2. DCOM配置权限(64位系统要添加32位组件【mmc -32】)
(1) 开始-运行-dcomcnfg,启动组件服务。
(2) 找到Microsoft Excel Application、Microsoft Office PowerPoint 幻灯片、Microsoft Office Word 97 - 2003 文档,-属性 -安全-中所有配置都选择“自定义”,添加用户(SYSTEM、INTERACTIVE、Everyone、Administrators、Administrator、IIS-IUSRS()、Network Services、Network 、USERS),添加“启动和激活权限”、“访问权限”,并赋予本地启动和激活;-标识,交互式用户(不能选择启动用户,会无法结束进程)
相关文章推荐
- .Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败
- .Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败
- .Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败
- .NET下在用Microsoft.Office.Interop.Excel、word等出现“检索 COM 类工厂中 CLSID 为...组件时失败
- 解决本地调用office组件成功,但是发布到IIS中出现的错误(检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败)
- (用iis调用com来操纵Excel) 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。8000401A的错误解决方法
- Excel导出实例(打开模板,写信息后另存为新excel文件) 在部署时候出问题Windows7 64 bit 下解决:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败
- .net 中用到excel中,检索COM类工厂中的CLSID为{000 24500-0000-0000-C000-000000000046}的组件时失败
- Office——检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败
- "检索COM类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005" 问题的解决
- IIS下注册COM组件 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046}的组件时失败 错误:80070005
- 解决检索 COM 类工厂中 CLSID 为 {96749377-3391-11D2-9EE3-00C04F797396} 的组件失败,异常0x80040154,没有注册类问题分析和解决办法
- 检索 COM 类工厂中 CLSID 为 {XXXX-XXXX-XXX-XXXXX-XXX} 的组件时失败,原因是出现以下错误: 80040154
- System.Runtime.InteropServices.COMException 检索COM类工厂中CLSID{xxxxxxxxx}的组件时失败解决方法
- excel导入导出的问题:检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
- System.Runtime.InteropServices.COMException 检索COM类工厂中CLSID{xxxxxxxxx}的组件时失败解决方法
- 解决RTX开发问题:检索 COM 类工厂中 CLSID 为 {79210E58-99EB-45D0-8890-763EFEAA143F} 的组件时失败,原因是出现以下错误: 80040154。
- asp.net打开office文件检索COM 类工厂中CLSID~组件加载失败(解决方案)
- 解决Office互操作错误"检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005"
- 解决C#调用执行js报检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 组件失败