检索具有CLSID {0A80A563-28AE-11D3-9CD6-00C04F8B8EF1}的组件的COM类工厂由于以下错误而失败:80040111 ClassFactory无法提供所请求的类(HRESULT异常:0x80040111(CLASS_E_CLASSNOTAVAILABLE))
我已经在HKLM \ Software \ Classes \ Wow6432Node \ CLSID {0A80A563-28AE-11D3-9CD6-00C04F8B8EF1中搜索了我可以在{0A80A563-28AE-11D3-9CD6-00C04F8B8EF1}找到程序集中的条目} \ InProcServer32中
我创建了应用程序通过使用嵌入式互操作类型,它在本地计算机上运行良好,但是当我将其部署到另一个服务器时,它会提供上述错误。
我在下面的代码行中得到了一个提到的错误
XYZ.IApplication Sr = new Application();
我已经在我的C#项目中添加了对C ++的XYZ.tlb的引用。
这是堆栈跟踪
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)
答案 0 :(得分:2)
由于许可,这是一个问题。 IIS_User无权访问“创建实例”。
更新了App Pool的管理员凭据并解决了问题。
答案 1 :(得分:2)
我在下面收到了同样的错误。
System.Runtime.InteropServices.COMException(0x80040111):由于以下错误,检索具有CLSID {0B92B777-B6AD-435C-B9FD-804878C36E55}的组件的COM类工厂失败:80040111 ClassFactory无法提供请求的类(异常来自HRESULT:0x80040111(CLASS_E_CLASSNOTAVAILABLE))。
就我而言,使用以下命令多次重新注册它可以解决问题。
regsvr32 {yourdllpath}\{yourdllfilename}
答案 2 :(得分:0)
如果您正在运行Command DOS提示符而没有管理员权限,也会发生这种情况。
单击开始-> CMD->右键单击显示的命令选项->运行方式 管理员->转到您的DLL位置,或者最好将其放置在 c:\ windows \ system32或\ sysWOW64-> regsvr32。\ yourdll.dll