When you try to register a .NET assembly for COM Interop,
you receive the following error message:
COM Interop
registration failed. Access to the registry key denied
NOTE: The error message may contain the key name in some
instances.
This error can occur under the following circumstances:
| • | You build an assembly that registers itself for COM
Interop. -or-
|
| • | You use the Assembly Registration utility (Regasm.exe) to
register the assembly for COM Interop. |
The error may occur even if the person who performs the
operation is an Administrator on the system.
Back to the top
This problem occurs because the current user does not have
the correct permissions for the following key in the Windows registry:
HKEY_CLASSES_ROOT\Component Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
Back to the top
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 (http://support.microsoft.com/kb/322756/) How to back up and restore the registry in Windows
To resolve this problem, follow these steps:
| 1. | Log on to the computer with an account that is a member of
the Administrators group on the local computer. |
| 2. | Click Start, click Run, and then type regedt32 to start Registry
Editor.
NOTE: On a computer that is running Windows NT 4.0 or Windows 2000,
you must run Regedt32.exe to review and to set permissions in the Windows
registry. On a computer that is running Windows XP, you can run either
Regedt32.exe or Regedit.exe. |
| 3. | Locate and then click the following subkey: HKEY_CLASSES_ROOT\Component Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29} |
| 4. | If your computer is running Windows NT 4.0 or Windows 2000,
click Permissions on the Security menu.
If your computer is running Windows XP,
right-click the key, and then click Permissions. |
| 5. | Click Advanced. |
| 6. | Click to select the Inherit Permission from Parent
Object check box, and then click Apply. |
| 7. | Verify that all of the users or the groups who will be
registering or using .NET assemblies through COM Interop have the following
advanced permissions:
| • | Query Value | | • | Enumerate Subkeys | | • | Notify | | • | Read Control |
To verify the permissions, double-click the user or
the group. If any of the users or the groups do not have any of these
permissions, click to select the Allow check box for the missing permissions.
To add
additional users or groups to the list, click Add in the Advanced Settings dialog box. Typically, as long as the Users, the Power Users, and
the Administrators in the group are present with the correct permissions,
everything works correctly. |
| 8. | Close Registry Editor. |
| 9. | Register the .NET assembly for COM Interop by using
Microsoft Visual Studio .NET or the Regasm.exe utility. |
Back to the top
This bug was
corrected in .NET Framework 1.1.
Back to the top