检索组件的COM类工厂失败

我正在使用excel对象(COM组件)进行excel操作。 它在我的电脑上工作正常,但是当我将应用程序部署到我们的内联网时,我得到这个错误:

检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80070005

我在我的web.config使用Windows身份validation和impersonate = true。

我做了组件服务的所有设置,但它仍然给出了相同的错误。

请帮忙

当我部署我的应用程序时,我有同样的错误。 我已经从该站点获得解决scheme: 由于以下错误,带有CLSID XXX的组件失败:80070005访问被拒绝

这是这个解决scheme:

  1. DCOMCNFG中 ,右键单击我的电脑,然后select属性

  2. selectCOM证券标签。

  3. 在“ 访问权限”中 ,单击“ 编辑默认值” ,然后向其中添加networking服务 ,并为其授予“ 本地访问权限”。 对<Machine_name> \ Users执行相同操作。

  4. 在“ 启动和激活权限”中 ,单击“ 编辑默认值”,然后将“ networking服务”添加到该服务中,并为其提供“ 本地启动”和“ 本地激活”权限。 对<Machine_name> \ Users执行相同操作。

*我使用表单身份validation。

如果您使用带有IIS7Windows 2008 Server ,还有一个问题需要解决。 服务器可能会报告以下错误:

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

  • 文件名或path不存在。
  • 该文件正在被另一个程序使用。
  • 您尝试保存的工作簿与当前打开的工作簿具有相同的名称。

该解决scheme在此处发布(查找用户Ogawa发布的文本): http ://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof =需要

系统EXCEL.EXE存在过时的EXCEL.EXE进程时,也会出现此错误(使用Task Manager --> Processes选项卡查看这些Task Manager --> Processes 。)

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

这为我做了诡计:(从MSDN论坛的解决scheme)

转到控制面板 – >pipe理工具 – >组件服务 – >计算机 – > myComputer – > DCOMconfiguration – > Microsoft Excel应用程序。

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

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

如果它有助于某人:

我正在运行Windows 7 64位,我想注册一个32位的DLL。

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

System.Runtime.InteropServices.COMException(0x80040154):检索具有CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败,原因如下:80040154。

然后我尝试通过组件服务(Run-> DCCOMCNFG)添加应用程序( http://www.justskins.com/forums/difference-registering-dll-using-regsvr32-and-component-services-17280.html )并得到以下错误:

System.UnauthorizedAccessException:检索具有CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败,原因如下:80070005。

有很多链接来解决这个问题,但什么对我有效:控制台根 – >组件服务 – >计算机 – >我的电脑 – > COM +应用程序 – > – >属性:安全选项卡:授权:取消选中“强制执行此应用程序的访问权限检查”。

我不知道它是什么。

你描述的CLSID是用于Microsoft.Office.Interop.Excel.ApplicationClass。 这个类基本上通过InprocServer32启动excel.exe。 如果你没有安装它,那么它会返回上面收到的错误信息。

对于IIS 8,我和Monic基本上是一样的。 我在X64机器上运行我的应用程序作为自己的应用程序池1.在DCOMCNFG中,右键单击我的电脑,然后select属性。

2.selectCOM证券标签。

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

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

此外,我不得不使C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop下列出的文件夹,并给予iis apppool \ myapp的读写权限

我能理解你的痛苦 在我的情况下,错误通过执行以下步骤得到解决:

  1. 开始>运行> dcomcnfg。
  2. 打开文件夹DCOMconfiguration并select组件服务>计算机>我的电脑> DCOMconfiguration。
  3. select“Microsoft Office Word 97 – 2003文档”/“Microsoft Excel应用程序”并转到其属性。
  4. 在“安全”选项卡中设置“启动和激活权限”需要自定义(授权用户)。
  5. 现在转到IIS并selectWeb的应用程序池并转到其高级设置,然后select“NETWORK SERVICE”作为标识用户。

希望这可以帮助。