Excel 检索组件的COM类工厂失败

Excel 检索组件的COM类工厂失败,excel,com,Excel,Com,我正在使用excel对象(COM组件)进行excel操作。它在我的电脑上运行良好,但当我将应用程序部署到我们的内部网时,我遇到以下错误: 由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80070005 我正在我的web.config中使用windows身份验证和模拟=true 我在ComponentService中进行了所有设置,但它仍然给出相同的错误 请提供帮助如果您将Windows 2008 Server

我正在使用excel对象(COM组件)进行excel操作。它在我的电脑上运行良好,但当我将应用程序部署到我们的内部网时,我遇到以下错误:

由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80070005

我正在我的
web.config
中使用windows身份验证和模拟=true

我在ComponentService中进行了所有设置,但它仍然给出相同的错误


请提供帮助

如果您将Windows 2008 ServerIIS7一起使用,您可能还需要解决一个问题。服务器可能报告以下错误:

Microsoft Office Excel无法访问文件“c:\temp\test.xls”。有几个可能的原因:

  • 文件名或路径不存在
  • 另一个程序正在使用该文件
  • 您试图保存的工作簿与当前打开的工作簿同名

解决方案发布在此处(查找用户Ogawa发布的文本):

以防帮助某人:

我运行的是64位Windows 7,我想注册一个32位dll

首先,我尝试了:regsvr32,得到了以下错误:

System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索CLSID为{A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败:80040154

然后,我尝试通过组件服务(Run->DCCOMCNFG)()添加应用程序,结果出现以下错误:

System.UnauthorizedAccessException:检索CLSID为{A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败,原因是出现以下错误:80070005

解决这个问题有很多联系,但对我来说有效的是: 控制台根目录->组件服务->计算机->我的计算机->COM+应用程序->您的应用程序\u名称->属性:安全选项卡:授权:取消选中“强制此应用程序的访问检查”

我不知道它是干什么的。

这对我来说是个好办法: (来自美国的解决方案)

转到控制面板-->管理工具-->组件服务-->计算机-->我的计算机-->DCOM配置-->Microsoft Excel应用程序

右键单击以获取“属性”对话框。转到“安全”选项卡并相应地自定义权限


在“启动和应用程序权限”中,选择“自定义、编辑”。添加调用应用程序的用户/组。

当系统中存在过时的
EXCEL.EXE
进程时,也会出现此错误(使用
任务管理器-->进程
选项卡查看这些进程)


杀死所有这些实例,应用程序将正常工作。

您描述的CLSID是针对Microsoft.Office.Interop.Excel.ApplicationClass的。该类基本上通过InprocServer32启动excel.exe。如果您没有安装它,它将返回您在上面收到的错误消息

我在部署应用程序时也遇到了同样的错误。我从这个网站得到了解决方案:

以下是解决方案:

  • DCOMCNFG中,右键单击我的电脑,然后选择属性

  • 选择COM证券选项卡

  • 访问权限中,单击编辑默认值,向其添加网络服务,并授予其允许本地访问权限。对\用户执行同样的操作

  • 启动和激活权限中,单击编辑默认值,向其添加网络服务,并授予其本地启动本地激活权限。对\用户执行同样的操作


  • *我使用表单身份验证。

    对于IIS8,我基本上做了与Monic相同的事情。我正在x64计算机1上作为自己的应用程序池运行我的应用程序。在DCOMCNFG中,右键单击“我的计算机”并选择“属性”

    2.选择COM证券选项卡

    3.在“访问权限”中,单击“编辑默认值”,向其添加iis apppool\myapp,并授予其“允许本地访问”权限。对iis apppool\myapp执行相同的操作

    4.在启动和激活权限中,单击编辑默认值,将iis apppool\myapp添加到其中,并授予其本地启动和本地激活权限。对iis apppool\myapp执行相同的操作


    此外,我还必须创建C:\Windows\SysWOW64\config\systemprofile\Desktop下列出的文件夹,并授予iis apppool\myapp的读写权限。我可以理解您的痛苦。在我的例子中,通过执行以下步骤解决了错误:

  • 开始>运行>dcomcnfg
  • 打开文件夹DCOM Config并选择组件服务>计算机>我的计算机>DCOM Config
  • 选择“Microsoft Office Word 97–2003文档”/“Microsoft Excel应用程序”并转到其属性
  • 在“安全”选项卡中设置“启动和激活权限”需要自定义(授权用户)
  • 现在转到IIS并选择Web的应用程序池,转到其高级设置并选择“网络服务”作为身份用户

  • 希望这能有所帮助。

    我在IIS 8.5(Windows Server 2012 R2)服务器中完成了以下操作,并且在我的情况下,它不需要重新启动即可正常工作:

  • 在IIS中选择连接到应用程序的应用程序池

  • 然后右键单击-->高级设置-->流程模型-->选择本地系统而不是推荐的ApplicationPoolIdentity

  • 并确保C:\Windows\SysWOW64\config\systemprofile\desktop对用户具有足够的访问权限。

  • 刷新与此池连接的网站链接



  • 我在尝试从Act导出csv文件时遇到同样的错误!出类拔萃。一个解决办法