当前位置: 代码迷 >> 综合 >> 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败的解决方案
  详细解决方案

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

热度:88   发布时间:2024-01-04 05:40:16.0
??

检索 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>

  相关解决方案