针对每种Windows Server 操作Excel、Word等Office组件遇到“ComException"、”80070005“等COM错误的解决方案大汇总

时间:2022-03-24 01:50:42

以下所有Excel错误的解决方案,同样适用于Word、PowerPoint等Office产品。

以下解决方案中,如果出现"安装Excel组件",是适用于遇到Excel错误的。如果是Word错误,则安装Word组件,而不是Excel组件,PowerPoint亦是如此,依次类推。

当然,如果你足够任性,你可以选择安装整个Office套件,不会有人说你什么的。

错误:

1.检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

Windows Server 2000 或 Windows XP:

解决方案:

1、在服务器上安装Office的Excel组件.
2、在"开始"->"运行"(或Win+R键打开"运行")中输入dcomcnfg.exe 启动"组件服务"
3、依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel Application",在它上面点击右键,然后点击"属性",弹出属性对话框
5、点击"标识"标签,选择"交互式用户"
6、点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加
一个"ASP.NET"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7、依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"ASP.NET"用户,然后赋予"本地访问"权限
8、如果还是不行,再按照以上步骤添加一个IUSR或IUSR_计算机名的账户权限
这样,我们便配置好了相应的Excel的DCOM权限.

Windows Server 2003:

解决方案:

1、在服务器上安装Office的Excel组件.
2、在"开始"->"运行"(或Win+R键打开"运行")中输入dcomcnfg.exe 启动"组件服务"
3、依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel Application",在它上面点击右键,然后点击"属性",弹出属性对话框
5、点击"标识"标签,选择"交互式用户"
6、点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加
一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7、依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限
8、如果还是不行,再按照以上步骤添加一个IUSR或IUSR_计算机名的账户权限
这样,我们便配置好了相应的Excel的DCOM权限.

Windows Server 2008 或 Windows Server 2008 R2 、 Windows Server 2012 、Windows Server 2012 R2:

解决方案:

x64:

建目录:C:\Windows\SysWOW64\config\systemprofile\Desktop

x86:

建目录:C:\Windows\System32\config\systemprofile\Desktop

参考如下讨论:http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91

PS:没有在Windows Server 2012以上的服务器操作系统测试过,不过我猜测这条解决方案应该同样适用。

所有服务器操作系统通用的解决方案:

在web.config中使用身份模拟验证。
在<system.web>节中加入 <identity impersonate="true" userName="你的用户名" password="密码"/>

<system.web>
<identity impersonate="true" userName="你的用户名" password="密码"/>
</system.web>

PS:这种通用的解决方案,存在风险,不建议在生产环境中使用。