检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败的解决方案

       工作过程中,需要在后台C#中操作Excel,编程调试时没有问题,但是发布后出现以下错误:

 

       错误信息:检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误:80070005 拒绝访问。 (异常来自HRESULT:0x80070005 (E_ACCESSDENIED))。

 

        网上虽然已经有许多人写了解决方案,但是说的并不全面,只是在特定情况下生效,本文给出使用多种情况的解决方案,相信能为您解决问题。

 

 

错误原因:网站应用程序未获得启动激活以及访问服务器上Excel程序的权限

  

 

解决方案步骤

 

1.首先确定服务器上安装了Office的Excel软件(并确认安装版本)

 

2.在【开始】--->【运行】中输入:

      若为office2003或office2007(即32位程序)输入comexp.msc -32

      若为office2010及以上,输入dcomcnfg.exe

      并回车来启动"组件服务"

 

 

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

 

4.在【DCOM配置】中找到“Microsoft Excel 应用程序”或“Microsoft Excel Application”,选中单击鼠标右键,然后点击“属性”,弹出“Microsoft Excel 应用程序属性”(或“Microsoft Excel Application 属性”)对话框

 

 

 

5.点击【标识】标签,选择交互式用户

 

 

6.点击【安全】标签,在【启动和激活权限】下点击【自定义】然后点击对应的【编辑】按钮,在弹出的【安全性】对话框中填加两个用户:

NETWORKSERVICE用户和“IIS_IUSRS”用户(注意要选择本计算机名)

,并给它赋予本地启动本地激活权限,并确定

 

 

 

7.仍然是【安全】标签下,在【访问权限】下点击【自定义然后点击对应的【编辑按钮,添加“NETWORKSERVICE”用户和“IIS_IUSRS”用户,并赋予“本地访问”权限

 

8.至此,问题应该已经解决,若没有解决

开始】--->【运行中分别输入“comexp.msc ”    “dcomcnfg.exe

分别进行上述配置,然后尝试。

 

***************************************************************************************************

        如果上述方法不能解决问题 ,请尝试用下面的方法(笔者未验证):

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

</system.web>

 

参考阅读:

1.  http://www.cnblogs.com/goyier/p/3203623.html 

2.  http://blog.csdn.net/ghostbear/article/details/8247588

2016年12月

 

************************************************************************************

如果对您有帮助,记得点赞哦~~~

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页