在ASP .NET项目中将数据导出为Excel格式时出现“检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005”
解决方案如下:
1:在服务器上安装office的Excel软件。
2:在“开始”->“运行”中输入 dcomcnfg.exe 启动“组件服务”。
注:如果是64位系统,而Excel是32位的组件,在正常的系统组件服务里是看不到的,可以通过在“运行”里面输入 comexp.msc -32 来打开32位的组件服务,在里就能看到Excel组件了。
3:依次双击“组件服务”->“计算机”->“我的电脑”->“DCOM配置”。
4:在“DCOM配置”中找到 "Microsoft Excel Application" ,在它上面点击右键,然后点击“属性”,弹出“Microsoft Excel Application属性”对话框。
5:点击“标识”标签,选择“交互式用户”。
6:点击“安全”标签,在“启动和激活权限”上点击“自定义”,然后点击对应的“编辑”按钮,在弹出的"安全性"对话框中填加一个 "ASP.NET" 用户(注意要选择本计算机名)并给它赋予“本地启动”和“本地激活"权限。
7:点击“安全”标签,在“访问权限”上点击“自定义”,然后点击“编辑”,在弹出的“安全性”对话框中也填加一个 "ASP.NET" 用户,然后赋予“本地访问”权限。
这样,便配置好了相应的Excel的DCOM权限.
如果在运行时出现:
Win32Exception (0x80004005): 拒绝访问。
在Web.config中使用 <identity impersonate="true" userName="用户名" password="密码"/> 放在<system.web>标签中
注:一般选择服务器计算机名称即可。