Сообщество программистов Autodesk в СНГ

ADN Club => Другие продукты Autodesk => Navisworks API => Тема начата: ivmax от 02-04-2020, 11:19:46

Название: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 02-04-2020, 11:19:46
Здравствуйте,

запускаю AutoLaunchExample из Navisworks SDK2020/COM и получаю ошибку 

System.Runtime.InteropServices.COMException: "Не удалось получить фабрику класса COM для компонента с CLSID {A21A30F2-5768-5584-A931-51CDD84ED222} из-за следующей ошибки: 80080005 Ошибка при выполнении приложения-сервера (Исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))."

как это можно исправить?
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 02-04-2020, 11:37:23
1. Остальные примеры работают?
2. Сообщение такое, что похоже на то, что Navisworks ненормально установился.
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 02-04-2020, 22:06:59
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 02-04-2020, 22:35:08
Попробуй запускать от имени администратора с отключенным контролем учетных записей.
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 02-04-2020, 22:36:23
Стоп. А какая версия Navisworks установлена?
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 09:08:39
установлена версия 2020

от имени администратора не помогло
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 09:12:20
установлена версия 2020
Надеюсь не Navisworks Freedom?
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 09:14:12
Navisworks Manage 2020  :)
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 09:27:52
И он сам по себе работает?
Название: Re: Ощибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 09:34:22
да, работает
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 10:56:48
В реестре в разделе HKEY_CLASSES_ROOT\CLSID есть подраздел {A21A30F2-5768-5584-A931-51CDD84ED222} ?
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 11:00:33
да есть
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 11:19:57
да есть
Что в этой ветке? Выполни её экспорт и результат выложи сюда:
(https://live.staticflickr.com/65535/49729552278_1af69958a8_o.png)
Дальше нужно будет проверять доступность файлов из LocalServer32 и разрешение на ветки реестра.

 
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 11:23:32
[HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222}]
@="Navisworks Document"

[HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222}\LocalServer32]
@="C:\\Program Files\\Autodesk\\Navisworks Manage 2020\\Roamer.exe"

[HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222}\ProgID]
@="Navisworks.Document.17"

разрешения
(https://i.postimg.cc/bGh5sFpg/image.png) (https://postimg.cc/bGh5sFpg)
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 13:52:30
Navisworks ActiveX Redistributable x64 Setup.exe устанавливал? Если нет - установи.
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 13:55:15
устанавливал,

по этому моменту есть еще 1 вопрос :) запускаю так же из SDk скрипт  AutoSimpleScriptExample.vbs, а он мне ошибку "невозможно создание объекта контейнером activex
'navisworks. document'"
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 13:59:30
и сам навис переустанавливал, и вчера даже так вышло что и виндоус пришлось переустановить..., все равно результат тот же
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 14:06:42
по этому моменту есть еще 1 вопрос :) запускаю так же из SDk скрипт  AutoSimpleScriptExample.vbs, а он мне ошибку "невозможно создание объекта контейнером activex
'navisworks. document'"

Всё так:

(https://live.staticflickr.com/65535/49730430906_027ab95645_o.png)

?

Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 14:09:57
ага
(https://i.postimg.cc/68jW5qH0/image.png) (https://postimg.cc/68jW5qH0)
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 14:19:53
У меня не осталось вариантов. Остаётся предположить, что это какая-то проблема в Windows, которая блокирует запуск приложения. Фактически этот код должен запустить Navisworks:
Код - vb.net [Выбрать]
  1. 'create new document
  2. set navis_doc=CreateObject("Navisworks.Document")      
  3.  
Т.е.
1) в реестре ищется HKEY_CLASSES_ROOT\Navisworks.Document
2) из ключа HKEY_CLASSES_ROOT\Navisworks.Document\CurVer читается значение, которое равно "Navisworks.Document.17"
3) Из ключа HKEY_CLASSES_ROOT\Navisworks.Document.17\CLSID читается значение, которое равно "{A21A30F2-5768-5584-A931-51CDD84ED222}"
4) Из ключа HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222} читается значение HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222}\LocalServer32, равное "C:\Program Files\Autodesk\Navisworks Manage 2020\Roamer.exe"
5) Запускается этот exe-файл.
Если всё на местах и есть права доступа, то как минимум Navisworks должен запустится.
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 14:51:10
запускаю AutoLaunchExample из Navisworks SDK2020/COM и получаю ошибку

System.Runtime.InteropServices.COMException: "Не удалось получить фабрику класса COM для компонента с CLSID {A21A30F2-5768-5584-A931-51CDD84ED222} из-за следующей ошибки: 80080005 Ошибка при выполнении приложения-сервера (Исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))."

как это можно исправить?

а по этому вопросу есть еще какие нибудь догадки или вариантов не осталось и по нему
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 14:55:19
запускаю AutoLaunchExample из Navisworks SDK2020/COM и получаю ошибку

System.Runtime.InteropServices.COMException: "Не удалось получить фабрику класса COM для компонента с CLSID {A21A30F2-5768-5584-A931-51CDD84ED222} из-за следующей ошибки: 80080005 Ошибка при выполнении приложения-сервера (Исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))."

как это можно исправить?

а по этому вопросу есть еще какие нибудь догадки или вариантов не осталось и по нему

А это всё одно и тоже. Это реакция на:
Код - C# [Выбрать]
  1. m_doc = new NavisworksAutomationAPI17.Document();
что тоже самое что и:
Код - vb.net [Выбрать]
  1. set navis_doc=CreateObject("Navisworks.Document")    
 
 
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: ivmax от 03-04-2020, 15:42:07
У меня не осталось вариантов. Остаётся предположить, что это какая-то проблема в Windows, которая блокирует запуск приложения. Фактически этот код должен запустить Navisworks:
Код - vb.net [Выбрать]
  1. 'create new document
  2. set navis_doc=CreateObject("Navisworks.Document")      
  3.  
Т.е.
1) в реестре ищется HKEY_CLASSES_ROOT\Navisworks.Document
2) из ключа HKEY_CLASSES_ROOT\Navisworks.Document\CurVer читается значение, которое равно "Navisworks.Document.17"
3) Из ключа HKEY_CLASSES_ROOT\Navisworks.Document.17\CLSID читается значение, которое равно "{A21A30F2-5768-5584-A931-51CDD84ED222}"
4) Из ключа HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222} читается значение HKEY_CLASSES_ROOT\CLSID\{A21A30F2-5768-5584-A931-51CDD84ED222}\LocalServer32, равное "C:\Program Files\Autodesk\Navisworks Manage 2020\Roamer.exe"
5) Запускается этот exe-файл.
Если всё на местах и есть права доступа, то как минимум Navisworks должен запустится.


 установил 2019 навис - скрипт запускается с версией 2019
поменял в "2) из ключа HKEY_CLASSES_ROOT\Navisworks.Document\CurVer читается значение, которое равно "Navisworks.Document.16"  на ....17, проследил как вы написали до пункта 4, там
roamer 2020, но все равно запускается 2019 навис, или это так не работает?
SimpleLaunchExample соответственно тоже стал работать
Название: Re: Ошибка Не удалось получить фабрику класса COM для компонента с CLSID
Отправлено: Александр Ривилис от 03-04-2020, 16:20:47
проследил как вы написали до пункта 4, там
roamer 2020, но все равно запускается 2019 навис, или это так не работает?
Я тоже на это обратил внимание. Более того даже изменение пути доступа к файлу Roamer.exe не помешало ему у меня запуститься.