您的位置:首页 > 其它

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

2017-12-15 21:35 746 查看
我在实现Word导出功能时使用了Office2007,在公司的电脑上运行没问题。由于需要向客户演示所以我要在本地搭一套环境,于是出现了“检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。”这个错误,经过一番折腾终于解决了,主要分为4步,下边一一说来。

一、Word导出引发的错误

1、开始->运行->dcomcnfg.exe,启动“组件服务”

2、组件服务->计算机->我的电脑->DCOM配置

3、找到“Microsoft Word文档”->右击->属性,Office版本不同名称可能不同,我安装的是Office2007名称是“Microsoft Word 6.0-7.0 文档”

4、点击“标识”,选择“交互式用户”

5、点击“安全”->启动和激活权限选择“自定义”->编辑->添加->高级->立即查找->选择Everyone、IIS_USRS、NETWORK SERVICE->点击确定->勾选所有权限

6、访问权限选择“自定义”->编辑->添加->高级->立即查找->选择Everyone、IIS_USRS、NETWORK SERVICE->点击确定->勾选所有权限

7、配置权限选择“自定义”->编辑->添加->高级->立即查找->选择Everyone、IIS_USRS、NETWORK SERVICE->点击确定->勾选所有权限

这时候刷新网页,一般就没问题了。

二、找不到“Microsoft Word文档”

有些人通过运行dcomcnfg.exe打开服务器组件后找不到“Microsoft Word文档”,这主要在64位系统中出现。原因是dcomcnfg.exe打开的组件服务只显示64位的组件,而你安装的Office是32位的,所以这样是看不到的。

解决方法是:开始->运行->dcomcnfg.exe -32,启动“组件服务”

如果使用上面的命令还是无法找到就试试下面这个

解决方法是:开始->运行->comexp.msc -32,启动“组件服务”

三、一、二步之后还是报错

如果经过第一步、第二步之后仍不能解决问题,就应该是权限的问题,可以在web.config中使用身份模拟。

具体方法:在< system.web>节中添加< identity impersonate=”true” userName=”Guo” password=”balabala”/>

四、三步之后还是不行

内心要崩溃了吗?

如果报错内容如下:无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。

那你就要检查下电脑中是不是装了WPS,这可能是WPS组件跟Office组件冲突了,把WPS卸载了再试试看!

如果这样还不行,那我只剩最后一招:卸载WPS&重新安装Office。

如果连最后一招都不奏效,那你就另请高明吧,我伺候不了了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class office word
相关文章推荐