Первое, что вы должны сделать, это проверить, можете ли вы создать этот объект вне приложения. Я использую VBScript здесь;
dim vvv
set vvv= CreateObject ("CoCreateInstance()")
if isnull(vvv) then
msgbox "null"
else
msgbox "not null"
end if
Если вы не можете создать объект, то, возможно, существует проблема с .dll, и вам лучше всего просто стереть компонент с реестра и полностью переустановить / переустановить его.
Если вы можете создать объект, существует проблема с приложением, обращающимся к компоненту. Обычно это происходит по одной из следующих причин:
Параметры безопасности компонента
- В целях выявления проблемы вы вправе снять флажок «принудительно проверять доступ». Убедитесь, что вы сняли флажок как на уровне приложения (пакета), так и на уровне компонента.
Настройки пользователя
- Проверьте эту ссылку . В дополнение к их советам попробуйте добавить IUSR_servername в качестве члена Администратора.
Несоответствие между службами компонентов и реестром
- Нам необходимо убедиться, что CLSID в компонентных службах соответствуют реестру. В службах компонентов найдите компонент (не приложение) и посмотрите свойства. Если компонент находится там, он определенно зарегистрирован. Пока вы здесь, мы могли бы дважды проверить некоторые настройки. Адрес DLL действителен? Правильны ли настройки безопасности, транзакций и активации? Хорошо, теперь обратите внимание на CLSID на вкладке «Общие». Зайдите в редактор реестра и найдите CLSID в HKEY_CLASSES_ROOT (он должен быть там). Убедитесь, что адрес dll и ProgID верны. Также убедитесь, что ключ и подразделы структурированы аналогично другим компонентам.
Если ничего из этого не работает, найдите в реестре имя компонента и удалите его. затем переустановите.