C # Windows Service COM excepción 80080005 al iniciar la aplicación

He creado un servicio de Windows que intenta iniciar una aplicación (en este caso, CATIA).

Yo uso el siguiente código:

private Application GetApplicationObject(string ProgId)
        {
            Application AppObject = null;
            //Try to get allready open instance of the Application
            try
            {
                AppObject = (Application)Marshal.GetActiveObject(ProgId);
            }
            catch
            {
                //Create a new instance of the Application instead
                AppObject = (Application)Activator.CreateInstance(Type.GetTypeFromProgID(ProgId));                
            }
            return AppObject;
        } 

Recibo el siguiente error cuando mi Servicio intenta iniciar la aplicación:

System.Runtime.InteropServices.COMException (0x80080005): La recuperación de la fábrica de clase COM para el componente con CLSID {87FD6F40-E252-11D5-8040-0010B5FA1031} falló debido a el siguiente error: 80080005. en System.RuntimeTypeHandle.Personalización de las piezas de la casa de juego. Público Booleano, tipo de programa de trabajo, así como también, a la vez que se trata de un tipo de trabajo. (Type type, Boolean nonPublic) en CATIA.CATIA.GetApplicationObject (String ProgId)

Importante: cuando ejecuto este código como una aplicación de Windows en lugar de un servicio de Windows, todo funciona bien. También intenté iniciar CATIA primero y ejecutarlo en segundo plano, pero mi Servicio no puede detectarlo.

Ejecuto el Servicio con el Sistema Local, y he marcado la casilla "Interactuar con el escritorio".

Mi ProgId es CATIA.Application, y como dije, funciona cuando lo ejecuto como una aplicación en lugar de un servicio.

¿Alguna idea de lo que está causando esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta