Не создается com-объект AutoCAD в службе

Автор Тема: Не создается com-объект AutoCAD в службе  (Прочитано 6703 раз)

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

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Добрый день!
Написал службу для Windows. Внутри службы должен создаваться com-объект AutoCAD.
Код такой:
Код - C# [Выбрать]
  1. // Создание нового экземпляра Application приложения AutoCAD
  2. Type comAppType = Type.GetTypeFromProgID("AutoCAD.Application");
  3. acApp = GetApp(() => Activator.CreateInstance(comAppType));
  4.  
Метод object GetApp(Func<object> func) описан в сообщении https://adn-cis.org/forum/index.php?topic=7364.0
В обычной Windows-программе все это работает. Для службы на операторе acApp = GetApp(() => Activator.CreateInstance(comAppType)); возникает исключение в методе GetApp на операторе object obj = func(); с таким сообщением:
Не удалось получить фабрику класса COM для компонента с CLSID {4AC6DFE1-607B-45B2-B289-D7FBCD44169C} из-за следующей ошибки: 80080005 Ошибка при выполнении приложения-сервера (Исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
Где здесь сермяжная правда? Можно ли в принципе создать Com объект AutoCAD в службе?
Спасибо.

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Поменял вход в систему: было с системной учетной записью, стало с системной записью пользователя. Com объект приложения создается.
Открыл документ, но, когда cтал работать по элементам документа, получил число элементов 0. В чем я не прав?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В чем я не прав?
Не прав в том, что пытаешься работать с AutoCAD из службы. Это всё будет крайне ненадежно. Вообще работать с AutoCAD через COM чревато кучей проблем, в чем ты уже убедился. А работа из службы увеличивает количество проблем на порядок. Зачем это нужно?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

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

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Мы попробовали запустить AutoCAD из консольной программы, запущенной из-под службы. Результат тот же. Так что, к сожалению, запуск AutoCAD из-под службы пока реализовать не удалось. Подождем. Может когда-нибудь это станет возможным.