Saltar al contenido

¿Cómo resolver la clase de excepción COM no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))?

Hola usuario de nuestra web, tenemos la solución a lo que andabas buscando, desplázate y la encontrarás aquí.

Solución:

Debe asegurarse de que todos sus ensamblajes se compilan para la arquitectura correcta. Intente cambiar la arquitectura para x86 si la reinstalación del componente COM no funciona.

Parece que el programa o proceso que intenta inicializar no está instalado en su máquina, tiene una instalación dañada o necesita registrarse.

Instálelo, repárelo (a través de Agregar o quitar programas) o regístrelo (a través de Regsvr32.exe).

No ha proporcionado suficiente información para que podamos ayudarlo más que esto.

Mi problema y la solución.

Tengo un dll de terceros de 32 bits que instalé en una máquina R2 de 2008 que es de 64 bits.

Tengo un servicio wcf creado en .net 4.5 framework que llama al dll de terceros de 32 bits para el proceso. Ahora tengo la propiedad de compilación configurada para apuntar a ‘cualquier’ CPU y la implementé en la máquina de 64 bits.

cuando traté de invocar el servicio wcf obtuve el error “80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)”

Ahora usé ProcMon.exe para rastrear el problema del registro com e identifiqué que el proceso está buscando la entrada del registro en HKLMCLSID y HKCRCLSID donde no hay ninguna entrada.

Me enteré de que Microsoft no registrará los componentes com de 32 bits en las rutas HKLMCLSID, HKCRCLSID en una máquina de 64 bits, sino que colocará la entrada en las rutas HKLMWow6432NodeCLSID y HKCRWow6432NodeCLSID.

Ahora el conflicto es un proceso de 64 bits que intenta invocar un proceso de 32 bits en una máquina de 64 bits que buscará la entrada de registro en HKLMCLSID, HKCRCLSID. La solución es forzar el proceso de 64 bits para que mire la entrada de registro en HKLMWow6432NodeCLSID y HKCRWow6432NodeCLSID.

Esto se puede lograr configurando las propiedades del proyecto de servicio wcf para apuntar a la máquina ‘X86’ en lugar de ‘Cualquiera’.

Después de implementar la versión ‘X86’ en el servidor 2008 R2, apareció el problema “System.BadImageFormatException: no se pudo cargar el archivo o el ensamblaje”.

La solución a esta excepción de formato de imagen incorrecta es establecer ‘Habilitar aplicaciones de 32 bits’ en ‘Verdadero’ en las propiedades del grupo de aplicaciones de IIS para el grupo de aplicaciones correcto.

Reseñas y puntuaciones del artículo

Nos puedes añadir valor a nuestro contenido informacional asistiendo con tu veteranía en las reseñas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *