failed due to the following error: 80070005 错误解决方案

公司的一个系统是ASP.NET页面下的导出Excel功能,采用了在服务器上打开一个Excel程序,写入数据,保存在服务器上,然后再传递给客户端的方法。在XP上完美运行之后,正式发布到WIN2003服务器上的时候,却出现了问题.

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.

网上大部分资料来自于:http://blog.crowe.co.nz/archive/2006/03/02/589.aspx 

但是貌似解决不了问题。

最后总结方法如下:

1:在服务器上安装office的Excel软件.

2:在"开始"->"运行"中输入DCOMCNFG启动"组件服务"

3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框

5:点击"标识"标签,选择"交互式用户"

6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.

7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.

这样,我们便配置好了相应的Excel的DCOM权限.
至此,我的问题貌似还没有解决。
还有两个需要注意的:
第一,if you are running on Windows 2003 Server you must enter the account that theApplication Pool is running as, by default "Network Service"

第二,以上还是解决不了的话,可以在<system.web>之间添加<identity impersonate="false"/>。

至此,应该可以完美解决。注意,环境是windows2003.

posted on 2011-04-14 09:31  Jan.David  阅读(3981)  评论(0编辑  收藏  举报

导航