这几天与.net 部门合作做一个Excel报表系统,当我运行他的项目是却报 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
当时就觉的很是无语了 微软的东西,有时真的很让人烦.不说,以下是操作
具体解决方法如下: 1:在服务器上安装office的Excel软件.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应 用程序属性"对话框
5:点击"标识"标签,选择"交互式用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加 一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
(关键就在这理,所以我特别说明下 点增加->选择用户与组窗口->点击高级->立即查询->ASPNET帐号)
我当时以为选administrator 可以成功,但是不行 解决问题的关键就在加这个用户上
然后给权限(最好把所有的权限都给勾上,免的麻烦)就照着我上面的说明做就可以了.这个操作,有图,大家可以看下图就明白了
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 这样,我们便配置好了相应的Excel的DCOM权限. 注意:这是在WIN2003上配置的,在2000上,可能是配置ASPNET用户 由于EXCEL是在服务器上打开的,所以应该写一个把导出数据保存在服务器上,然后再传递给客户端的方法,最后每次调 用这个功能的时候再删除以前在服务器上所生成的所有Excel
本篇文章来源于 :刘志猛博客 原文链接:http://www.liuzm.com/article/web/917.htm