none
Error accessing the OLE registry 0x8002801C TYPE_E_REGISTRYACCESS

    Question

  • Using RTM Windows 7 64 bit.

    I have been trying to register a com plus component but have been getting nowhere fast. I have tried via the Component Services gui and via the regsvcs command line tool. The error I am getting is the the following:

    regsvcs c:\Components\MyComponent.dll
    
    
    
    Microsoft (R) .NET Framework Services Installation Utility Version 2.0.50727.492 7
    
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    The following installation error occurred:
    
    1: Failed to generate type library 'c:\Components\MyComponent.tlb' for 'MyComponent, Version=3.0.0.0, Culture=neutral, PublicKeyToken=fa819fa4631e9f24'.
    
    2: Failed to register type library 'c:\Components\MyComponent.tlb'.
    
    3: Error accessing the OLE registry. (Exception from HRESULT: 0x8002801C (TYPE_E_REGISTRYACCESS))

    I have tried running the command as my normal user, running it by "Run as administrator", turning UAC completely off and running, and every combination I could think of.

    If I knew the registry sections getting the permission denied I would give full permissions to it. I have tried using SysInternals procmon to find where the registry was getting denied but have not come up with anything.

    Any help is appreciated!
    • Edited by Matt6288 Friday, August 28, 2009 1:46 PM
    Thursday, August 27, 2009 8:44 PM

All replies

  • Is there a way to grant full permissions to the everyone user for the entire registry (effectively turning off permissions)?
    Friday, August 28, 2009 1:45 PM
  • Any ideas at all? Does complus not work at all in Windows 7?
    Monday, August 31, 2009 2:09 PM
  • Hi,
    Had a IMO similar issue a couple of months ago. Run as administrator didn't work, but logging off and logging in again using the administrator account did the job.

    Regards

    Rem
    Monday, August 31, 2009 2:12 PM
  • I tried that out and wasn't able to get anything different. Also tried on a couple of different systems with different users and still the same thing. I am about to call it quits with supporting Windows 7 since complus doesn't work on it.
    Monday, August 31, 2009 4:29 PM
  • Can anyone confirm that it does work? Is there a better forum for this question or a place to report this bug?
    Tuesday, September 1, 2009 2:51 PM
  • Hi,
    Sorry for not "answering" sooner, but I've been out of town today.

    My guess is that you have forgotten to create the entry in the Components Services Explorer. The famous "/c" parameter.

    For example, if your single DLL assembly resides in MyAssembly.dll and you wish to add the serviced components in that assembly to the MyApp COM+ application, you would use RegSvcs in this manner:

    RegSvcs.exe /appname:MyApp  MyAssembly.dll
    

    The command-line application name is ignored if the assembly contains an application name.

    In any case, you must create that COM+ application in the Component Services Explorer beforehand; otherwise, the previous command line will fail. You can instruct RegSvcs to create the application for you using the /c switch:

    RegSvcs.exe  /c  MyApp  MyAssembly.dll  
    

    Or if the name is specified in the assembly:

    RegSvcs.exe  /c  MyAssembly.dll  
    

    When using the /c switch, RegSvcs creates a COM+ application, names it accordingly, and adds the serviced components to it. If the Catalog already contains an application with that name, the registration fails.

    You can also ask RegSvcs to try to find a COM+ application with that name and, if none is found, create one. This is done using the /fc switch:

    RegSvcs.exe  /fc MyApp MyAssembly.dll  
    

    Or if the name is specified in the assembly:

    RegSvcs.exe  /fc  MyAssembly.dll
    Hoping this helps
    Regards

    Rem
    Tuesday, September 1, 2009 6:41 PM
  • Unfortunately I am still getting the same errors. The same syntax works successfully on XP and 2003. It would be nice to see someone official from MS weigh in on this.
    Wednesday, September 2, 2009 1:26 PM
  • To identify which registry key is causing the problem use Regmon (a freeware tool published by System Internals). Use Regmon to capture all registry access when regsvcs is run. If an ‘OpenKey’ request fails with ‘Access Denied’ (which is listed by Regmon as ‘ACCDENIED’) then run regedt32 and check the permissions on that registry key. If necessary change the permissions on the key to grant local Administrators ‘Full Control’. They try registering the COM object again. The only times I have encountered this problem it affected more than one key, so be prepared to repeat this process.
    Wednesday, September 2, 2009 2:00 PM
  • Regmon was replaced with Procmon. I have tried that already and I never saw an access denied registry request. I will give it another try and let you know what happens. I am going to go through the official MS Partner Network to see if I can get some tech support on this to see if that will help.
    Wednesday, September 2, 2009 8:52 PM
  • If you are using windows 7 then do following

    Control Panel -> User Accounts -> Change user account control settings -> Change to NEVER NOTIFY

    Thursday, July 22, 2010 8:36 AM
  • Hi guys,

    I am Using windows 7 pro (not 64 bit)

    My Problem was like this - I installed the FLAC codec/converter, and it needed  MSCOMCTL.OCX to run, which did not even exist in system32. I found  MSCOMCTL.OCX from here http://www.lancelhoff.com/component-mscomctlocx-or-one-of-its-dependencies-not-correctly-registered/  (which was nice)

     

    Adding it to the registry failed from doing this:    Start -> Run and type REGSVR32 MSCOMCTL.OCX and the result was the fabulous error code 0x8002801c. After looking through forums i found this advice that totally solved my problems and my FLAC program worked so i guess it solved my OCX file problem.

    I found it here:http://www.vistaheads.com/forums/microsoft-public-windows-vista-general/114095-call-dllregisterserver-failed-0x8002801c.html

    To summarize, search cmd from start, right click on cmd and run as administrator, and type regsvr32 mscomctl.ocx (in my case)

    I hope this helps (seriously, ive been hunting through forums for an hour and found this solution in only ONE post :S  )

     

    Peace!

     

     - Cez

     

     

    Wednesday, December 22, 2010 6:59 PM