C# B/S项目用到了Excel文件的上传和下载,而且涉及到了数据的读写,调用了Office的Excel组件来实现功能,
开发的时候很顺利,但一部署到服务器就出问题了,
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,出现错误:8000401a
在网上找了几种解决方法,其间有时得有时不得,经过多次实践,解决方案总结如下:
OFFICE支持的安装配置
i. 安装OFFICE2007(一定要装Excel)
iii. 按顺序安装两个补丁:1、vstor.exe 和 2、O2007PIA.EXE
iv. DCOM中的Excel设置
1. 单击开始,单击运行,然后键入 DCOMCNFG。
2. 依次展开:组件服务 – 我的电脑 – DCOM配置,找到 Microsoft Excel Application,然后右击找开属性窗口。
3. 单击标识选项卡,然后选择<交互式用户>或者特定用户,输入administrator及密码。
4. 单击安全选项卡。
5. 启动权限、访问权限、配置权限均设置为自定义。
6. 验证启动、访问和配置权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
* 这些帐户仅在计算机上安装了 Internet Information Server (IIS) 的情况下才存在。
参考:http://www.cnblogs.com/ljhong/archive/2009/02/13/1390009.html