Получение фабрики классов COM для компонента с CLSID {0A80A563-28AE-11D3-9CD6-00C04F8B8EF1} не удалось из-за следующей ошибки: 80040111 ClassFactory не может предоставить запрошенный класс (Исключение из HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE))
Я искал запись в реестре, которую могу найти сборку с {0A80A563-28AE-11D3-9CD6-00C04F8B8EF1} в HKLM \ Software \ Classes \ Wow6432Node \ CLSID {0A80A563-28AE-11D3-9CD6-00C04F8B8EF1} \ InProcServer32
Я создал приложение. Используя встроенные типы взаимодействия, он отлично работает на локальном компьютере, но при развертывании его на другом сервере выдает указанную ошибку.
я получаю упомянутую ошибку в следующей строке кода
XYZ.IApplication Sr = new Application();
Я добавил ссылку на XYZ.tlb, который находится на C ++, в мой проект на C #.
вот трассировка стека
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
Я получил ту же ошибку ниже.
System.Runtime.InteropServices.COMException (0x80040111): получение фабрики классов COM для компонента с CLSID {0B92B777-B6AD-435C-B9FD-804878C36E55} завершилось неудачно из-за следующей ошибки: 80040111 ClassFactory не может предоставить запрошенный класс (Исключение из HRESULT 0 0: 0) 08 (CLASS_E_CLASSNOTAVAILABLE)).
В моем случае перерегистрация несколько раз с помощью следующей команды решила проблему.
regsvr32 {yourdllpath}\{yourdllfilename}
Это была проблема из-за разрешения. У IIS_User не было разрешения на доступ к созданию экземпляра.
Обновлены учетные данные администратора для пула приложений, и проблема устранена.