Problema con objeto COM

18/11/2004 - 09:04 por Pedro Gago | Informe spam
Hola a todos,

estoy usando un objeto COM desde un programa .Net. La cuestión, que ahora
explicaré, es que llega un momento en que me deja de funcionar.

Genero una aplicación Windows en .Net que usa el objeto COM y funciona
correctamente, tanto en mi máquina local como en un servidor que únicamente
tiene el .Net Framework.

Luego hago un servicio Windows que usa el objeto COM. Éste funciona bien en
mi máquina pero peta en un servidor que únicamente tiene el .Net Framework.
Hemos hecho la misma prueba en 4 equipos diferentes (2 con el entorno de
programación completo y 2 con el .Net Framework sólo) y curiosamente
obtenemos resultados diferentes (ambos con error) que son:

1) "System.Runtime.InteropServices.COMException (0x80040154): El objeto COM
con CLSID XXXX no es válido o no está registrado."
Curiosamente el CLSID que me dice es el del objeto COM en mi máquina, que no
está en el registro del servidor.
El servicio lo he instalado con un proyecto de aplicación, el cual genera en
el servidor (al instalarlo) un fichero interop.CalculoConceptos.dll, cuando
el original era CalculoConceptos.dll.

2) "Se ha producido el siguiente error : System.InvalidCastException: Error
de QueryInterface para la interfaz CalculoConceptos._clsCalculoConceptos.
at CalculoConceptos.clsCalculoConceptosClass.fUtilBDConectar(String&
strCommand, String& strIP, String& strNameSpace, Connection& AdoConn)
at Servicio_Interaccion.Service1.Timer1_Elapsed(Object sender,
ElapsedEventArgs e)"

Hemos probado ya muchas cosas: usar la herramienta tlbimp, usar late binding
y otras sin ningún resultado. ¿Alguien me puede ayudar?

Gracias

Pedro Gago
 

Leer las respuestas

#1 Pedro Gago
18/11/2004 - 09:21 | Informe spam
Hola de nuevo,

He hecho un pequeño avance. He copiado manualmente el objeto de VB6 al
servidor y la he registrado (cosa que no hace el instalador de .Net). De
esta forma parece que el objeto Interop funciona y conseguimos que en ambos
servidores nos de el mismo error:

"Se ha producido el siguiente error : System.InvalidCastException: Error
de QueryInterface para la interfaz CalculoConceptos._clsCalculoConceptos.
at CalculoConceptos.clsCalculoConceptosClass.fUtilBDConectar(String&
strCommand, String& strIP, String& strNameSpace, Connection& AdoConn)
at Servicio_Interaccion.Service1.Timer1_Elapsed(Object sender,
ElapsedEventArgs e)"

Ahora bien, sigo sin saber qué hacerle a este error.

Pedro Gago

"Pedro Gago" escribió en el mensaje
news:
Hola a todos,

estoy usando un objeto COM desde un programa .Net. La cuestión, que ahora
explicaré, es que llega un momento en que me deja de funcionar.

Genero una aplicación Windows en .Net que usa el objeto COM y funciona
correctamente, tanto en mi máquina local como en un servidor que


únicamente
tiene el .Net Framework.

Luego hago un servicio Windows que usa el objeto COM. Éste funciona bien


en
mi máquina pero peta en un servidor que únicamente tiene el .Net


Framework.
Hemos hecho la misma prueba en 4 equipos diferentes (2 con el entorno de
programación completo y 2 con el .Net Framework sólo) y curiosamente
obtenemos resultados diferentes (ambos con error) que son:

1) "System.Runtime.InteropServices.COMException (0x80040154): El objeto


COM
con CLSID XXXX no es válido o no está registrado."
Curiosamente el CLSID que me dice es el del objeto COM en mi máquina, que


no
está en el registro del servidor.
El servicio lo he instalado con un proyecto de aplicación, el cual genera


en
el servidor (al instalarlo) un fichero interop.CalculoConceptos.dll,


cuando
el original era CalculoConceptos.dll.

2) "Se ha producido el siguiente error : System.InvalidCastException:


Error
de QueryInterface para la interfaz CalculoConceptos._clsCalculoConceptos.
at CalculoConceptos.clsCalculoConceptosClass.fUtilBDConectar(String&
strCommand, String& strIP, String& strNameSpace, Connection& AdoConn)
at Servicio_Interaccion.Service1.Timer1_Elapsed(Object sender,
ElapsedEventArgs e)"

Hemos probado ya muchas cosas: usar la herramienta tlbimp, usar late


binding
y otras sin ningún resultado. ¿Alguien me puede ayudar?

Gracias

Pedro Gago


Preguntas similares