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