最近用.net写了一个相关Excel的B/S的程序,部署到2003企业版的服务器上遇到这个错误:
检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
在网上搜索一下,找到解决方案,转贴过来备忘。
http://www.cnblogs.com/PiedPiper/articles/627764.html
然后一切正常。没想到过了两天,突然错误再次出现。检查权限,没问题啊,真是晕倒。
网上有个朋友建议说装SP1补丁就好了。但我已经打过补丁了啊。
最后的解决方案:
依据:http://www.cnblogs.com/HQT/archive/2006/05/22/406345.html
做如下操作:
1.打开excel,按alt + F11,关闭excel和VBA;
2.单击开始,单击运行,然后键入 DCOMCNFG;
3.点击组件服务-计算机-我的电脑-DCOM配置,这时弹出一个问注册的窗口,确定注册。
这时就一切恢复正常了,不用往下操作了。呵呵
在VS2005里面却没有任何问题,因此得出结论,肯定是权限问题,查了下资料,问题解决。
具体解决方法如下:
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,xp上,NETWORK SERVICE用户改为ASP.net用户。
这个问题困扰了我好几天,也花了1天多的时间,仔细的去看,终于解决了。
配置
要在交互式用户帐户下设置
1.
2.
3.
4.
5.
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
单击属性打开此应用程序的属性对话框。
6.
7.
8.
9.
10.
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
*
11.
12.
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
*
13.
14.
如果你之前起用了身份模拟