C # Windows Service COM исключение 80080005 при запуске приложения

Я создал службу Windows, которая пытается запустить приложение (в данном случае CATIA).

Я использую следующий код:

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;
        } 

Я получаю следующую ошибку, когда моя служба пытается запустить приложение:

System.Runtime.InteropServices.COMException (0x80080005): получение фабрики классов COM для компонента с CLSID {87FD6F40-E252-11D5-8040-0010B5FA1031} завершилось неудачно из-за следующей ошибки: 80080005. at System.RuntimeTypeHandle.CreateTypepe Логическое publicOnly, булева NOCHECK, булева & canBeCached, RuntimeMethodHandle & т е р, булева & bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, булева fillCache) при System.RuntimeType.CreateInstanceImpl (булево publicOnly, булевы skipVisibilityChecks, булева fillCache) при System.Activator.CreateInstance (Тип type, логическое непубличное значение) в CATIA.CATIA.GetApplicationObject (String ProgId)

Важно: когда я запускаю этот код как приложение Windows вместо службы Windows, все работает нормально. Я также попытался сначала запустить CATIA и запустить его в фоновом режиме, но мой Сервис не смог его перехватить.

Я запускаю Службу с локальной системой, и я установил флажок «Взаимодействовать с рабочим столом».

Мой ProgId - CATIA.Application, и, как я уже сказал, он работает, когда я запускаю его как приложение, а не как службу.

Любая идея о том, что вызывает это?

Ответы на вопрос(1)

Ваш ответ на вопрос