2009-05-19 63 views
20

我正在使用excel对象(COM组件)进行excel操作。它工作正常,我的电脑,但是当我将应用程序部署到我们的内联网我收到此错误:检索COM类工厂的组件失败

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005

我使用Windows身份验证和模拟=真在我web.config

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

请帮

+1

您是否找到了解决此问题的解决方案?我只是用同样的问题来解决这个问题。我正在运行一个VB.Net应用程序,**不是** Asp.Net。 – 2011-02-16 18:45:26

+0

没关系,我不得不从Office安装程序安装Excel的.Net功能。傻我 – 2011-02-16 19:01:38

回答

5

还有一个更多,如果你使用的是的Windows 2008服务器IIS7你可能需要解决的问题。服务器可能会报告以下错误:

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

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

该解决方案张贴在这里(找张贴用户小川文):http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof=required

+1

+1000服务器2008 x64添加文件夹`C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop`宾果游戏!!! – dotjoe 2011-09-13 14:41:57

+0

它拯救了我的一天。 – mike27015 2013-07-10 08:43:33

2

在情况下,它可以帮助别人:

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

首先我尝试:REGSVR32和得到了以下错误:

System.Runtime.InteropServices.COMException(0x80040154的):检索COM类工厂具有CLSID部件{A1D59B81-C868-4F66-B58F-AC94A4A7982E}由于未能出现以下错误:80040154

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

System.UnauthorizedAccessException的:检索COM CLSID {A1D59B81-C868-4F66-B5 8F-AC94A4A7982E}失败,原因是出现以下错误:80070005。

有许多环节解决,但什么工作对我来说是: 控制台根目录 - >组件服务 - >计算机 - >我的电脑 - > COM +应用程序 - > - >属性:安全性选项卡:授权:取消选中“强制执行对此应用程序的访问检查”。

我不知道它在做什么。

3

这为我做的伎俩: (从msdn forum溶液)

goto Controlpanel --> Administrative tools-->Component Services -->computers --> myComputer -->DCOM Config --> Microsoft Excel Application.

right click to get properties dialog. Goto Security tab and customize permissions accordingly.

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

4

您也将获得这个错误时有系统陈旧EXCEL.EXE进程(使用Task Manager --> Processes标签来查看这些。)

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

0

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

20

我在部署我的应用程序时发生了同样的错误。我已经得到了解决,从这个网站:Component with CLSID XXX failed due to the following error: 80070005 Access is denied

下面是该解决方案:

  1. DCOMCNFG,右键单击我的电脑,选择性能

  2. 选择COM证券标签。

  3. 访问权限,单击编辑默认值并添加网络服务到它,并给它允许本地访问许可。对于<机器名> \用户执行相同操作。

  4. 启动和激活权限,单击编辑默认值并添加网络服务到它,并给它本地启动本地激活许可。对于<机器名> \用户执行相同操作。

*我使用了表单认证。

0

对于IIS 8,我做了与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应用程序池\ MYAPP也

0

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

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

希望这会有所帮助。