2

由于以下错误,检索具有 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# 项目中添加了对 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)
4

3 回答 3

3

我在下面收到了同样的错误。

System.Runtime.InteropServices.COMException (0x80040111):检索具有 CLSID {0B92B777-B6AD-435C-B9FD-804878C36E55} 的组件的 COM 类工厂失败,原因是以下错误:80040111 ClassFactory 无法提供请求的类(来自 HRESULT 的异常:0x80040111 (CLASS_E_CLASSNOTAVAILABLE))。

就我而言,使用以下命令重新注册几次解决了这个问题。

regsvr32 {yourdllpath}\{yourdllfilename}
于 2014-05-06T15:30:26.120 回答
2

由于许可,这是一个问题。IIS_User 没有创建实例的访问权限。

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

于 2013-05-30T11:01:54.583 回答
0

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

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

于 2019-05-09T06:58:29.990 回答