利用Excel.Application检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
原因:
用户没有使用Excel的权限!
解决方案一:
必须在服务端配置好Excel的DCOM权限。步骤如下:
1:在服务器上安装office的Excel软件.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框
5:点击"标识"标签,选择"交互式用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的Excel的DCOM权限.
注意:我是在WIN2003上配置的,在2000上,是配置ASPNET用户.注意:如果IIS设置为windows验证,那么这里就应该添加Users组,而不是NETWORK SERVICE了,并且web.config里应该加上.此外,采用域用户的验证和域用户登陆时,标识里需要选择"启动用户",配置权限里加上Authenticated Users组的完全控制权限.
解决方案二:
将IIS帐户强行设置为特定用户,在web.config的内加上如下一句..不推荐用该方法,安全性降低.
<system.web>
<!--
在这里添加下面这句
-->
<identity impersonate="true" userName="administrator" password="zhang"/>
</system.web>
解决方案三:
将应用程序授予Internet来宾帐户执行访问权限.(IIS匿名访问的情况)