.Net调用Office Com组件的原理及问题:检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败

最近在本地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

现将文章整理如下:

最开始报错:

  1. 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,重新安装,报错
  2. 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),添加“启动和激活权限”、“访问权限”,并赋予本地启动和激活;-标识,交互式用户(不能选择启动用户,会无法结束进程)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python爬虫日记

安装slide后Powerpoint 不自动退出的解决方案

安装slide之后,powerpoint关闭后,powerpnt.exe进程不正常退出,需要手工终止。

38520
来自专栏TheOneGIS空间站

OpenGL+Visual Studio 2010开发环境搭建

用于OpenGL标准开发的应用程序运行时需有动态链接库opengl32.dll、glu32.dll,这两个文件在安装Windows NT时已自动装载到C:\Wi...

12720
来自专栏渠道合作伙伴技术圈

本地windows2008R2镜像上腾讯云迁移解决方案--实践技术文档

【实践目的】实现本地的windows2008R2等镜像上云迁移,让迁移后的云机保持本地的业务环境。

76720
来自专栏方亮

一种注册表沙箱的思路、实现——注册表的一些基础知识

        要做注册表沙箱,就必须要了解部分注册表知识。而注册表的知识很多,本文主要讲述如何在win32系统是上识别注册表映射的。(转载请指明出处)

14220
来自专栏bisal的个人杂货铺

win7运行sqlplus报错“SP2-1503: 无法初始化 Oracle 调用界面”

WIN7 64bit安装Oracle 10.2.0.1后,运行cmd-sqlplus / as sysdba会提示:

17450
来自专栏方亮

zookeeper快速入门——简介

        在几十年前,一个独立的计算机上往往部署着一套完整的应用系统。当时因为网络稳定性及速度的限制,将相关联的服务部署在一台机器上,让它们使用系统机制通...

10520
来自专栏业余草

AD域中常见属性名词解释

AD域中常见属性名词解释 Active Directory(AD)活动目录 schema对象模型 Organizational Unit(OU)组织...

27530
来自专栏终身学习者

JavaScript 是如何工作的:Service Worker 的生命周期及使用场景

你可能已经知道,渐进式Web应用程序 只会越来越受欢迎,因为它们的目标是让Web应用程序用户体验更流畅,创建类似于原生应用程序的体验,而不是浏览器的外观和感觉。

13210
来自专栏TheOneGIS空间站

Texworks拼写检查

我使用的是Tex Live2015,其中自带的编辑器 Texworks是不自带拼写检查的,那么我们书写英文单词的时候需要Word那样的拼写检查怎么办?

23720
来自专栏有脑子的搬砖工

Eureka Server 的高可用

在前面的示例中, Eureka Server 是允许匿名访问的, 本节来构建一个需要登录才能访问的 Eureka Server。

14020

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励