ASP.NET 导出Excel 错误解决备忘
网站项目要用到导出为excel文件的功能,程序运行时报错:"检索 COM 类工厂中 CLSID 为{000-0000-0000-C0046} 的组件时失败,原因是出现以下错误: 。"上网又查了半天,终于找到了解决方案,原来是权限设置的问题,解决方法如下:
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用户
由于EXCEL是在服务器上的,该写一个把导出数据保存在服务器上,然后再传递给客户端的方法,最后每次调
用这个功能的时候再删除以前在服务器上所天生的所有Excel
------
但按照方法在系统的DCOM设置里却没有发现 Microsoft Excel 应用程序 ??
------
之后找到了原因,如下,是由于我使用的是64位系统导致:
主要是64位系统的问题,excel是32位的组件,所以在正常的系统组件服务里是看不到的
可以通过在运行里面输入 comexp.msc -32 来打开32位的组件服务,在里就能看到excel组件了