Tengo un servidor nativo COM de C++ que expone las interfaces COM. Puedo utilizar con éxito una aplicación de cliente C++ nativa para obtener y usar las interfaces expuestas del servidor.La interfaz .net al servidor COM falla con 0x80080005
Cuando utilizo un cliente .NET con una referencia al servidor, me sale el error:
Retrieving the COM class factory for component with CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
... a pesar de que el servidor se inicia y se ejecuta correctamente COM (y sólo toma alrededor de 1 o 2 segundos para el inicio).
pero me sale el error anterior sólo cuando el servidor está registrada como un servidor local. Si registro el servidor como un servicio de Windows, el cliente de .NET puede obtener y usar las interfaces correctamente.
Estoy haciendo todo esto como administrador en Windows 7 de 64 bits. El servidor COM está en la máquina local.
he comprobado el hilo de abajo, pero no se ofrecieron respuestas: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80080005
pasado un día y medio en este caso hasta el momento ... lo que podría ser el problema?
Más información:
He tenido esto trabajando con vs2005. Recientemente me actualicé a vs2010 y ahora me encuentro con este problema. Intenté construir los marcos de orientación de cliente .net 2.0, 3.5 y 4.0 con los mismos resultados.
Gracias
¿Su servidor COM es de 32 bits? ¿Estás ejecutando el CLR .NET de 64 bits? – Rup
El servidor COM es de 32 bits. Creé el cliente .net específicamente para x86 ... ¿hay algo más necesario para apuntar a CLR de 32 bits? – Ken
¿Podría estar esto relacionado con instancias únicas o múltiples del servidor? Cuando se registra como un servicio, todo funciona. Los clientes pueden conectarse al servidor y hacer su trabajo. Cuando se registra como un servidor local, cada intento de conexión con el cliente inicia una nueva instancia del servidor y luego ocurre el error 0x80080005; así que después de varias pruebas tengo varias instancias del servidor ejecutándose en lugar de solo una. – Ken