80040111 ClassFactory 无法提供请求的类(HRESULT 异常:0x80040111 (CLASS_E_CLASSNOTAVAILABLE))

问题描述 投票:0回答:3

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

我已经在注册表中搜索了条目,我可以在 HKLM\Software\Classes\Wow6432Node\CLSID{0A80A563-28AE-11D3-9CD6-00C04F8B8EF1}\InProcServer32 处找到包含 {0A80A563-28AE-11D3-9CD6-00C04F8B8EF1} 的程序集

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

我在以下代码行中收到提到的错误

XYZ.IApplication Sr = new Application();

我已将 C++ 中的 XYZ.tlb 引用添加到我的 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)
c++ c#-4.0 iis-7 interop web-deployment
3个回答
3
投票

我收到了下面同样的错误。 就我而言,使用以下命令多次解决了该问题。


2
投票

这是由于许可而出现的问题。 IIS_User 没有访问创建实例的权限。

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


0
投票

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

单击开始 -> CMD -> 右键单击显示的命令选项 -> 运行为 管理员 -> 转到您的 DLL 位置,或者最好还是将其放入 c:\windows\system32 或 \sysWOW64 -> regsvr32 .\yourdll.dll

© www.soinside.com 2019 - 2024. All rights reserved.