80040111 ClassFactory不能提供请求的类(异常来自HRESULT: 0x80040111 (class

80040111 ClassFactory cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE))

本文关键字:异常 class 0x80040111 HRESULT 不能 ClassFactory 请求 80040111      更新时间:2023-10-16

为CLSID为{0A80A563-28AE-11D3-9CD6-00C04F8B8EF1}的组件检索COM类工厂失败,由于以下错误:80040111 ClassFactory无法提供请求的类(异常来自HRESULT: 0x80040111 (classe_classnotavailable))

我已经搜索了注册表中的条目,我可以找到{0A80A563-28AE-11D3-9CD6-00C04F8B8EF1}在HKLMSoftwareClassesWow6432NodeCLSID{0A80A563-28AE-11D3-9CD6-00C04F8B8EF1}InProcServer32

我已经通过使用嵌入式互操作类型创建了应用程序,它在本地机器上工作正常,但当我将其部署到另一个服务器时,它给出了上述错误。

我在下面的代码行中得到一个提到的错误

XYZ.IApplication Sr = new Application();

我已经添加了对XYZ的引用。

在我的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):为CLSID {0B92B777-B6AD-435C-B9FD-804878C36E55}的组件检索COM类工厂失败,原因是以下错误:80040111 ClassFactory不能提供请求的类(异常来自HRESULT: 0x80040111 (classe_classnotavailable))。

在我的例子中,用下面的命令重新注册几次就解决了这个问题。

regsvr32 {yourdllpath}{yourdllfilename}

权限问题。IIS_User没有访问创建实例的权限。

更新了应用程序池的管理员凭据,问题已解决。

如果您正在运行命令DOS提示符,而没有管理员权限,也可能发生这种情况。

单击START -> CMD ->右键单击显示的命令选项-> RUN AS管理员->转到您的DLL位置,或者最好还是把它放在c:windowssystem32或sysWOW64 -> regsvr32 .yourdll.dll