COM class factory for component with CLSID {000245

If you add a reference to Microsoft Excel and then try to use it within your ASP.NET application you may receive the following error.

Server Error in '/excel' Application.


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

Example Application

The problem is that by default Microsoft Excel as a COM object can only activated by the following accounts:

  • Administrator
  • System
  • Interactive

When you are running your ASP.Net account on Windows XP your web application is running as the ASPNET account.

The way to resolve this issue is to edit the DCOM configuration settings for the Microsoft Excel Application object.

Configure DCOM

  • Go to the Start-Run menu item.
  • Type in "DCOMCNFG" and hit enter.
  • This should load the "Component Services" MMC (you can also load from Administrative Tools - Component Services"
  • Expand "Component Services"
  • Expand "Computers"
  • Expand "My Computer"
  • Select the "DCOM Config" item
  • Select the "Microsoft Excel Application" item.
  • Right click and select Properties
  • Select the Security Tab and you should see the following:



     
  • Under "Launch and Activation Permissions " select the "Customize " option.
  • Click the "Edit " button

    Windows XP

             

    Windows 2003 Server

     

      
     
  • Click the "Add" button to add a new account to the list.
  • On the dialog that is displayed click the Locations button

    (this is because by default your domain will be selected and we need a local account)

    In this dialog scroll the list to the top (sometimes the first item is not visible) but scroll to the top and select the first item which is your computer name. In the list below "CCROWE" is the name of my computer.



     
  • Click the OK button
  • On the dialog that is displayed enter "ASPNET " as the account name (make sure location is set to the name of the computer that IIS is on) on Windows XP or if you are running on Windows 2003 Server you must enter the account that the Application Pool is running as, by default "Network Service "

    Windows XP

                  

    Windows 2003 Server

    Note : A quicker way on Windows XP is to just enter the computer name and the account
    so in my case that would be:

              ccrowe\ASPNET  

     


  • Click the OK button
  • Now make sure you select the following options for the "ASP.NET Machine Account" or the account that is the application pool identity ( by default Network Service)
     
    • Local Launch         : Allow
    • Remote Launch        : [blank]
    • Local Activation     : Allow
    • Remote Activation    : [blank]

    These settings can be seen below:

  •  

    Windows XP

             

    Windows 2003 Server

     
  • Click the OK button and test your web application again and it should work fine.

Note: Remember if you are running on Windows 2003 Server you must use the application pool identity as the account and not the ASPNET account.

这个异常是由于无法找到注册的 COM 类型引起的。具体来说,错误消息 "Retrieving the COM class factory for component with CLSID {729F623A-1EC5-4900-B033-3CD75AD0CEA5} failed due to the following error: 80040154 Class not registered" 表示尝试检索具有指定 CLSIDCOM 组件时失败,因为该组件未正确注册。 要解决这个问题,您可以尝试以下几种方法: 1. 检查 COM 组件是否已正确安装和注册:确保所需的 COM 组件已正确安装,并且在注册表中具有正确的注册信息。 2. 使用正确的位数:如果您的应用程序是 64 位的,而 COM 组件是 32 位的,或者反之,可能会导致这个问题。确保使用与 COM 组件相匹配的位数。 3. 重新注册 COM 组件:可以尝试重新注册相关的 COM 组件。打开命令提示符(以管理员身份运行),然后使用 `regsvr32` 命令重新注册组件。例如:`regsvr32 path\to\component.dll`。 4. 更新或重新安装 COM 组件:如果可能,尝试更新或重新安装相关的 COM 组件,以确保正确的安装和注册。 5. 检查依赖项:某些 COM 组件可能依赖于其他组件。确保所有必需的依赖项都已正确安装和注册。 请注意,具体的解决方法取决于您使用的 COM 组件以及应用程序的具体情况。如果以上方法无法解决问题,建议您联系相关组件的技术支持团队以获取更多帮助。 如果您能提供更多的上下文信息,如相关的代码或更多的异常堆栈跟踪,我们可以更好地帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值