Не удалось получить фабрику класса COM для компонента с CLSID

Автор Тема: Не удалось получить фабрику класса COM для компонента с CLSID  (Прочитано 223 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
ОШИБКА: Не удалось получить фабрику класса COM для компонента с CLSID {0B628DE4-07AD-4284-81CA-5B439F67C5E6} из-за следующей ошибки: 80080005 Ошибка при выполнении приложения-сервера (Исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))
Не знаю уже куда податься,
Код запускается на IIS, Windows 10, autocad 16
Обращение к автокаду через  COM
Код - C# [Выбрать]
  1. dynamic app = null;
  2. Type comAppType = Type.GetTypeFromProgID("AutoCAD.Application");
  3. try { app = Marshal.GetActiveObject(type); }
  4. catch { }
  5. if (app == null)
  6.       app = Activator.CreateInstance(comAppType);
Если запускать из студии то все работает!
Сначала то же самое было с екселем, но его поборол, теми же манипуляциями для автокада не вышло(

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 10027
  • Карма: 1281
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
и какая альтернатива?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 10027
  • Карма: 1281
  • Рыцарь ObjectARX
  • Skype: rivilis
и какая альтернатива?
Альтернатива чему? Чего ты хочешь достичь?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
хочу работать с автокадом на IIS
вроде настроил удостоверение пула приложения от имени админа, но все равно не работает(

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 10027
  • Карма: 1281
  • Рыцарь ObjectARX
  • Skype: rivilis
Можно попробовать настроить запуск от конкретного пользователя, для которого AutoCAD нормально запускается. Но лучше использовать вместо полного AutoCAD AcCoreConsole: http://adndevblog.typepad.com/autocad/2012/04/getting-started-with-accoreconsole.html (но с COM/ActiveX работать не будет)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • ****
  • Сообщений: 300
  • Карма: 49
хочу работать с автокадом на IIS
вроде настроил удостоверение пула приложения от имени админа, но все равно не работает(
Судя по задумке не сработает.
Нужно в сеансе пользователя запустить AutoCAD хотя бы раз, чтобы создался профиль в реестре. Затем возможно закрыть, чтобы сохранились настройки.
Затем в этом сеансе, если открыт AutoCAD   можно выполнить app = Marshal.GetActiveObject(type); и работать с ним.

Скорее всего для успеха на компьютере должен быть запущен один экземпляр AutoCAD, с которым нужно работать из активного пользователя.

Во всех других случаях скорее всего различные проблемы. Либо AutoCAD не захочет запускаться и создавать профиль, либо будут сложности с получением экземпляра AutoCAD через GetActiveObject.
хук с ROT https://adn-cis.org/dostup-k-com-prilozheniyam-iz-tabliczyi-ispolnyayushhixsya-obektov-(rot).html
у меня не получился из под одного пользователя. Он показывал правильное количество запущенных  экземпляров, но возвращал только один.
Если несколько сеансов пользователей с запущенными AutoCAD, то не вернет ли GetActiveObject экземпляр другого пользователя?

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
и все права раздавал на приложение, всем пользователям
и запустил сервер от имени пользователя
и запустил автокад ручками, но GetActiveObject в этом случае ничего не возвращает, будто приложение закрыто, а создать новое не получается у него никак..
и что только не делал
Excel к слову получилось завести созданием папки Desktop в недрах system32 - такие вот неочевидные решения
автокад завести не удалось
на сайте Microsoft прямым текстом пишут что оно для того не предназначено
бросил эту затею