2011-05-18 23 views
6

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

+0

¿Su servidor COM es de 32 bits? ¿Estás ejecutando el CLR .NET de 64 bits? – Rup

+0

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

+0

¿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

Respuesta

-2

Microsoft no recomienda actualmente, y no es compatible, Automatización de aplicaciones de Microsoft Office desde cualquier aplicación desatendida, no interactiva cliente o componente (incluyendo ASP, ASP.NET, DCOM y Servicios NT), porque Office puede mostrar un comportamiento inestable y/o interbloqueo cuando se ejecuta Office en este entorno.

Para más información consultar este Link

+0

La pregunta no tiene nada que ver con Office. –

0

que estaba viendo este error cuando se utiliza una aplicación .NET que se ejecuta en x64 para intentar conectarse a una aplicación COM de 32 bits. Pude arreglarlo fácilmente cambiando mi aplicación .net a x86 (32 bit).

Cuestiones relacionadas