最近在.net中处理Excel文件数据导入时报出以下错误:
检索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",如图:
3.右键->属性,在标识选项卡中选择"交互式用户",如图:
4.在"安全"选项卡中的"启动和激活权限"分组中,选择"自定义",然后点击"编辑",添加执行操作的账户并授予"本地启动"和"本地激活"权限,如图所示
5..在"安全"选项卡中的"访问权限"分组中,选择"自定义",然后点击"编辑",添加执行操作的账户并授予"本地访问"权限,如图所示
6.配置结束,重新运行程序,不再报错.