解决Office互操作错误"检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005"
2016-12-26 16:25 假面Wilson 阅读(874) 评论(0) 编辑 收藏 举报Excel为例(其他如Word也适用)文件数据导入时报出以下错误:
检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005,如图所示:
可以看到报出的异常类型为:UnauthorizedAccessException,没有权限访问,表明我们需要配置执行操作账户的COM访问权限.
由于系统是Windows Server 2008 64位版的,服务器上安装的Excel版本为Excel 2007 是32位应用程序,所以在系统的组件服务中是找不到Excel的,
此时,需要在32位DCOM配置中设置权限,具体步骤如下:
1.运行命令"comexp.msc -32",打开组件服务32位管理控制台,如图:
2.在DCOM配置中找到"Microsoft Excel Applcation",如图:
Word:
3.右键->属性,在标识选项卡中选择"交互式用户",如图:
4.在"安全"选项卡中的"启动和激活权限"分组中,选择"自定义",然后点击"编辑",添加执行操作的账户并授予"本地启动"和"本地激活"权限(如Network Service,IUSR),如图所示
5..在"安全"选项卡中的"访问权限"分组中,选择"自定义",然后点击"编辑",添加执行操作的账户并授予"本地访问"权限(如Network Service,IUSR),如图所示
6.在"位置"选项卡中,如图所示
7.配置结束,IIS程序池选择允许32位程序,重新运行程序,不再报错.