80040154 класс не зарегистрирован: Ошибка 2147221164 (0x80040154) класс не зарегистрирован 1C 8.3.XXX
Содержание
Класс не зарегистрирован — что делать
Ошибки
54321
0 (0 votes)
The estimated reading time is 3 minutes
В программном обеспечении 1С, как и в любом другом, иногда возникают ошибки. Это не дает софту нормально функционировать и может затормозить работу целой организации. Поэтому нужно знать, как справляться с различными сбоями. В частности, сегодня мы разберем, из-за чего возникает ошибка «2147221164 (0x80040154): Класс не зарегистрирован», и что нужно сделать, чтобы ее исправить.
Ошибка «2147221164 (0x80040154): Класс не зарегистрирован»
Содержание статьи:
- 1 Когда появляется ошибка 2147221164
- 2 Справляемся с проблемой
- 2.1 Регистрируем библиотеку comcntr.dll
- 2.2 Создаем новое приложение СОМ+
Когда появляется ошибка 2147221164
Ошибка «2147221164 (0x80040154): Класс не зарегистрирован» появляется из-за конфликта версий 1С, которые в данный момент устанавливают между собой соединение. Разберем подробнее. Информационные БД 1С производят обмен данных при помощи СОМ-соединения. И, если, например, платформа 1С:Предприятие конфигурации 8.3 пытается установить связь с 1С версии 8.1, то на этом этапе при попытке подключения к СОМ-серверу и выскакивает данная ошибка.
Для начала определим, что у сервера 1С есть несколько версий:
- 32-битная 8.1 (х86).
- 64-битные 8.2 и 8.3 (х64).
Неполадки появляются на самом сервере с БД. Корень проблемы в том, что версии 1С архитектуры х64 не могут напрямую обратиться к 32-битной библиотеке comcntr.dll. В этом случае соединение происходит при помощи приложений СОМ+, способных взаимодействовать с библиотеками х86.
Читайте также: Неверный формат хранилища данных 1C 8.3 как исправить.
Справляемся с проблемой
Заканчиваем с теорией и переходим к практике – пробуем исправить ошибку «2147221164 (0x80040154): Класс не зарегистрирован».
Регистрируем библиотеку comcntr.dll
Ошибка может проявиться, если не зарегистрирована библиотека comcntr. dll. Решаем ее следующим образом. Вызываем строку «Выполнить» (кликнув ПКМ по кнопке «Пуск») и вводим regsvr32.exe «C:Program Files(86)1cv828.3.XX.XXXXbincomcntr.dll». Нажимаем ОК и, если все прошло корректно, то мы увидим сообщение об успешной регистрации библиотеки.
Создаем новое приложение СОМ+
Если библиотека зарегистрирована, но проблема остается, то кликаем ПКМ по кнопке «Пуск» (для ОС Windows 10) и вызываем «Панель управления». Затем входим в раздел «Система и безопасность», после чего переходим в «Администрирование». Появляется окно, в котором мы ищем строку «Службы компонентов» и открываем ее двойным щелчком ЛКМ. В новой консоли два раза кликаем ЛКМ по папке «Компьютер» и затем «Мой компьютер». Перед нами появляется список папок. ПКМ нажимаем на «Приложения СОМ+» и выбираем «Создать»→«Приложение».
Создаем новое COM+ приложение
Далее действуем следующим образом.
- В открывшемся Мастере нажимаем «Далее» и, когда в следующем окне нам предложат действие на выбор, кликаем «Создать новое приложение».
- В соответствующей строке присваиваем новому приложению имя, которое будет понятно не только нам, но и другим пользователям при дальнейшей работе, например 1CV8_ComConnect. Здесь же выбираем способ активации – «Серверное приложение».
Вводим имя нового приложения 1CV8_ComConnect
- Теперь проводим процедуру удостоверения. В поле «Указанный пользователь» при помощи функции «Обзор» ищем учетную запись, под которым будем запускать сервер 1С версии 8.3. (Для примера обозначим ее как User1CV83).
Ищем пользователя при помощи функции «Обзор»Конкретные шаги выбора пользователя
- Пропускаем процедуры, предлагаемые в следующих окнах, и нажимаем кнопку «Готово». Мастер закрывается.
- Возвращаемся в окно «Службы компонентов» и раскрываем ветку нашего только что созданного приложения. Разворачиваем узел «Роли», в которой кликаем на пункт CreatorOwner. ПКМ щелкаем по строке «Пользователи» и создаем нового пользователя. Снова выбираем ту учетную запись, под которой будет запускаться сервер 1С (это та самая User1CV83, о которой шла речь выше).
- Переходим в ветку приложения 1CV8_ComConnect и кликаем ПКМ на узел «Компоненты». Создаем новый компонент.
- В открывшемся Мастере делаем выбор пункта «Установка новых компонентов» и, когда появляется следующее окно, определяем нужную нам библиотеку dll (она находится по пути C:Program Files (x86)1cv81bin). Завершаем работу Мастера.
- У нас появился компонент 1CV81.ComConnect.1. Кликаем по нему ПКМ и открываем пункт «Свойства». Во вкладке «Безопасность» находим перечень «Явно установленные для выделенных объектов роли» и ставим флажок напротив CreatorOwner.
Может быть вам полезно: Обнаружено нарушение целостности системы в 1C что делать.
Мы рассмотрели соединение с базой из программы 1С:Предприятие версии 8.3. Если планируется устанавливать коннект с БД 8.1 из версии 1С 8.2, то нужно добавить нового пользователя. Переходим по пути 1CV8_ComConnect → Роли → CreatorOwner → Пользователи и добавляем новую учетную запись User1CV82, под которой будет производиться запуск сервера 1С версии 8. 2.
Если спокойно и внимательно следовать алгоритму, то исправление ошибки на деле окажется простым и быстрым. Благодаря вышеописанным действиям программа 1С версий 8.2 и 8.3 сможет обратиться за информацией к библиотеке comcntr.dll и ошибка «2147221164 (0x80040154): Класс не зарегистрирован» больше не возникнет.
Leave a comment
ИСПРАВЛЕНИЕ: Установка маршрутизации и удаленного доступа не удалась, потому что класс не зарегистрирован 80040154
В Windows Server 2016 при попытке настроить маршрутизацию и удаленный доступ может появиться следующая ошибка: «Установка маршрутизации и удаленного доступа не удалась, так как класс не зарегистрирован (80040154)».
Проблема в деталях: После установки роли «Удаленный доступ» для добавления функций «Прямой доступ и VPN» на Server 2016 появляется ошибка «Установка маршрутизации и удаленного доступа не удалась, поскольку класс не зарегистрирован. (80040154)» в последний шаг «Мастер настройки маршрутизации и удаленного доступа».
Причина ошибки «Класс не зарегистрирован (80040154)»: ошибка возникает из-за того, что на сервере не удалось установить роль «Удаленный доступ».
Как исправить FIX: класс не зарегистрирован (80040154) в настройке маршрутизации и удаленного доступа (Server 2016).
Чтобы исправить класс «Не зарегистрирован» (80040154) в мастере настройки маршрутизации и удаленного доступа, продолжите и переустановите роль удаленного доступа на вашем сервере. Для этого:
1. Откройте «Диспетчер серверов» и нажмите Добавить роли и особенности.
2. На первом экране «Мастер добавления ролей и компонентов» оставьте Ролевая или функциональная установка вариант и нажмите Следующий.
3. На следующем экране оставьте параметр по умолчанию «Выберите сервер из пула серверов«и нажмите Следующий.
4. Выберите Удаленный доступ роль и нажмите следующий.
5. На экране «Функции» оставьте настройки по умолчанию и нажмите следующий.
6. На информационном экране «Удаленный доступ» нажмите следующий.
7. В «Удаленных сервисах» выберите Прямой доступ и VPN (RAS) Ролевые службы, а затем нажмите следующий.
8. Затем нажмите Добавить функции.
9. щелчок следующий опять таки.
10. Оставьте настройки по умолчанию и нажмите следующий (дважды) на экранах «Роль веб-сервера (IIS)» и «Службы роли».
11. На экране «Подтверждение» выберите Перезагрузите сервер назначения автоматически (если требуется) и нажмите Установить.
12. Теперь дождитесь завершения установки.
13. Убедитесь, что установка завершена без ошибок. *
* Примечание. Если в конце процесса установки произошел сбой установки компонента с ошибкой: «Не удалось выполнить запрос на добавление или удаление компонентов на указанном сервере. Операция не может быть завершена, поскольку указанный сервер требует перезагрузки «, а затем прочитайте этот учебник, чтобы решить проблему.
14. Выполните и настройте маршрутизацию и удаленный доступ.
Это оно! Дайте мне знать, если это руководство помогло вам, оставив свой комментарий о вашем опыте. Пожалуйста, любите и делитесь этим руководством, чтобы помочь другим.
Поделиться с друзьями:
Твитнуть
Поделиться
Поделиться
Отправить
Класснуть
Adblock
detector
dll — класс не зарегистрирован Ошибка
При запуске приложения из Visual Studio 2012 на 64-разрядных компьютерах отображается следующее сообщение об ошибке:
Не удалось получить фабрику классов COM для компонента с CLSID {F2D4F4E5-EEA1-46FF-A83B-A270C92DAE4B} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
Я использую библиотеку Inventor packandgo dll в VisualStudio.
Кто-нибудь знает, что это за ошибка?
- dll
- visual-studio-2012
- com
- 64-разрядная версия
- 32-разрядная версия
0
Моя проблема и ее решение
У меня есть 32-битная dll стороннего производителя, которую я установил на машине 2008 R2, которая является 64-битной.
У меня есть служба wcf, созданная в среде .net 4.5, которая вызывает 32-битную стороннюю DLL для процесса. Теперь у меня есть свойство сборки, настроенное на «любой» процессор, и я развернул его на 64-битной машине.
Когда я попытался вызвать службу wcf, возникла ошибка «80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG»
Теперь я использовал ProcMon.exe для отслеживания проблемы реестра com и определил, что процесс ищет запись реестра в HKLM\CLSID и HKCR\CLSID, где записи нет.
Стало известно, что Microsoft не будет регистрировать 32-битные компоненты com по путям HKLM\CLSID, HKCR\CLSID на 64-битной машине, а помещает запись в пути HKLM\Wow6432Node\CLSID и HKCR\Wow6432Node\CLSID.
Теперь конфликт заключается в том, что 64-битный процесс пытается вызвать 32-битный процесс на 64-битной машине, который будет искать запись реестра в HKLM\CLSID, HKCR\CLSID. Решение состоит в том, что мы должны заставить 64-битный процесс просмотреть запись реестра в HKLM\Wow6432Node\CLSID и HKCR\Wow6432Node\CLSID.
Этого можно добиться, настроив свойства проекта службы wcf так, чтобы они указывали на компьютер X86 вместо «Любой».
После развертывания версии «X86» на сервере 2008 R2 возникла проблема «System.BadImageFormatException: не удалось загрузить файл или сборку»
Решение для этого исключения badimageformateexception заключается в установке для параметра «Enable32bitApplications» значения «True» в свойствах пула приложений IIS для правильного пула приложений.
7
Проблема в том, что DLL зарегистрирована в 32-битной версии реестра Windows, а приложение использует 64-битную версию.
Решение. Перейдите в свойства проекта, вкладку «Компиляция» и щелкните «Дополнительные параметры компиляции…». Измените «Целевой процессор» на x86, нажмите «ОК», сохраните и повторите попытку.
Источник:
http://www.theogray.com/blog/2009/10/comexception-regdbeclassnotreg-on-64-bit-windows
У меня работало с COM-библиотекой VB 6, вызванной из приложения .Net 4 Winforms
Где-то в коде, который вы используете, есть вызов API Win32, CoCreateInstance, для динамической загрузки библиотеки DLL и создания экземпляра объекта из нее.
Сопоставление между идентификатором компонента и библиотекой DLL, способной создать экземпляр этого объекта, обычно находится в реестре в HEKY_CLASSES_ROOT\CLSID. Обсуждать это дальше означало бы объяснять многое о COM в Windows. Но ошибка указывает на то, что GUID COM отсутствует в реестре.
Я не очень разбираюсь в том, что такое DLL PackAndGo (компонент Autodesk), но я подозреваю, что вам просто нужно «установить» этот компонент или программный пакет, с которым он поставляется, с помощью назначенного установщика, чтобы иметь эту DLL и соответствующий реестр COM. ключи на вашем компьютере, на котором вы пытаетесь запустить свой код. (т. е. запустите setup.exe для этого продукта).
Другими словами, я думаю, вам нужно установить «Pack and Go» на этот компьютер, а не просто копировать DLL на целевую машину.
Кроме того, убедитесь, что вы решили построить свой код как 32-битный или 64-битный, в зависимости от того, какую сборку (32- или 64-битную) Pack And Go вы устанавливаете.
У меня была такая же проблема. Я пробовал много способов, но, наконец, решение было простым.
Решение:
Откройте IIS, в пулах приложений щелкните правой кнопкой мыши используемую платформу .net.
Перейдите в настройки и измените «Включить 32-разрядные приложения» на «Истина».
В 64-битных машинах с Windows компоненты COM должны зарегистрироваться в HKEY_CLASSES_ROOT\CLSID (64-битный компонент) ИЛИ HKEY_CLASSES_ROOT\Wow6432Node\CLSID (32-битный компонент). Если ваше приложение является 32-разрядным приложением, работающим на 64-разрядной машине, библиотека COM обычно будет искать GUID в узле Wow64, а если ваше приложение является 64-разрядным приложением, библиотека COM попытается загрузиться из HKEY_CLASSES_ROOT\CLSID. Убедитесь, что вы ориентируетесь на правильную платформу и что у вас установлена правильная версия библиотеки (32/64 бит).
Давно решено Я уверен, но это может помочь еще кому-нибудь.
Эта ошибка может возникнуть, если DLL, которую вы развертываете в установочном пакете, не совпадает с DLL, на которую вы ссылаетесь (они будут иметь разные идентификаторы)
Звучит очевидно, но может легко произойти, если вы внесете небольшое изменение в dll и ранее установили приложение на свой компьютер, которое перерегистрирует dll.
Я столкнулся с той же проблемой. Я добавил ссылку на dll COM-компонента Microsoft.Office.Interop.Excel, но Office не был установлен в моей системе, это не приведет к ошибке времени компиляции. Я перенес свое приложение в другую систему и запустил его… оно успешно сработало.
Итак, я могу сказать, что в моем случае причиной этой проблемы была системная среда.
У меня была эта проблема, и я решил ее, когда понял, что она ищет указанный в скобках реестр Windows.
Поскольку ошибка происходила только на одном компьютере, мне пришлось экспортировать реестр с компьютера, на котором он работал, и установить его на компьютер, на котором его не было.
Я получаю следующую ошибку в моем 32-битном приложении.
Ошибка: получение фабрики классов COM для компонента с CLSID
{4911BB26-11EE-4182-B66C-64DF2FA6502D} не удалось из-за следующих
ошибка: 80040154 Класс не зарегистрирован (исключение из HRESULT:
0x80040154 (REGDB_E_CLASSNOTREG)).
И при установке для параметра « Enable32bitApplications
» значения true в defaultapplicationpool
в IIS у меня сработало.
Мне пришлось установить распространяемый компонент Microsoft Access Database Engine 2010 и перезагрузить компьютер.
Это случилось со мной, когда я запускаю eclipse для рабочей области, а не для других рабочих областей. В этой рабочей области у меня был файл *.ts, открытый с помощью «JS-редактора». Произошла ошибка, несмотря на правильную ассоциацию файлов в настройках. Другой *.ts файл открылся без ошибок. Чтобы обойти это, в «Открыть ресурс» (ctrl-shift-r) я использовал кнопку «Открыть с помощью» и выбрал «Редактор JS», и файл открылся без проблем. После этого eclipse знает, какой редактор использовать для этого файла. Я решил проблему для одного конкретного типа файлов, но решение, вероятно, применимо ко всем типам файлов. Надеюсь, это поможет кому-то. Спасибо за прочтение
Проверьте, установлены ли на этом сервере MS Office и MS Excel.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
С# — Что нужно сделать, чтобы разрешить 80040154 Класс не зарегистрирован, исключение
спросил
Изменено
6 лет, 4 месяца назад
Просмотрено
11 тысяч раз
Я сталкиваюсь со следующей ошибкой только при попытке запустить проект на целевой машине
[ОШИБКА] ExecuteTestScriptsOnSAP_GUI: получение фабрики классов COM
для компонента с CLSID {B90F32AD-859E-4EDD-BFAE-C9216849520C}
не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован
(Исключение из HRESULT: 0x8004015 4 (REGDB_E_CLASSNOTREG)).
Кажется, это нормально работает на моем компьютере для разработки.
Я пытаюсь запустить SAP gui 7. 40
из своего проекта, и в нем есть ссылка на Interop.SAPFEWSELib.dll
Приведенный выше файл .dll
был создан, когда sapfewse.ocx
был впервые добавлен в проект в качестве зависимости.
Может ли кто-нибудь помочь мне, что можно сделать, чтобы решить эту проблему?
- c#
- sap-gui
Я пока не могу комментировать и поэтому могу ответить только в ответ.
Возможно, элемент управления sapfewse.ocx, который вы используете через Interop.SAPFEWSELib.dll, не зарегистрирован на вашей целевой машине.
Проверьте реестр HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID и найдите класс для B90F32AD-859E-4EDD-BFAE-C9216849520C на вашей машине разработки. Ключ InProcServer32 должен сообщить вам путь к зарегистрированному компоненту. Убедитесь, что этот компонент развернут и зарегистрирован на вашей целевой машине.
Надеюсь, это укажет вам правильное направление.
2
Если вы работаете на машине с 32-битной ОС, то
«C:\Windows\System32\regsvr32.