最近用.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配置,这时弹出一个问注册的窗口,确定注册。这时就一切恢复正常了,不用往下操作了。呵呵唉....微软的Office的内核实在太老了,问题多
具体解决方法如下: 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
引用文章: http://support.microsoft.com/default.aspx?scid=kb;zh-cn;288366 如果你之前起用了身份模拟 (在 web.config 中配置了 <identity impersonate="true"/> ) ,需要删除之!... |