加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – COM异常 – TYPE_E_CANTLOADLIBRARY?

发布时间:2020-12-16 09:44:44 所属栏目:asp.Net 来源:网络整理
导读:我在.Net Web应用程序中使用COM dll.这适用于多台不同的机器. 但是在一台特定的机器上,我收到以下错误: 无法将“CServer.CApplicationClass”类型的COM对象强制转换为接口类型“CServer.ICApplication”.此操作失败,因为对于具有IID'{CF0DFA28-046B-4C7D-8A
我在.Net Web应用程序中使用COM dll.这适用于多台不同的机器.
但是在一台特定的机器上,我收到以下错误:

无法将“CServer.CApplicationClass”类型的COM对象强制转换为接口类型“CServer.ICApplication”.此操作失败,因为对于具有IID'{CF0DFA28-046B-4C7D-8AA9-F4B7477D8CAE}的接口的COM组件的QueryInterface调用由于以下错误而失败:加载类型库/ DLL时出错. (来自HRESULT的异常:0x80029C4A(TYPE_E_CANTLOADLIBRARY)).

我使用regsvr32命令注册了dll.
我还为这个dll创建了一个COM应用程序.
通过注册表运行搜索
我可以在很多地方找到钥匙.
我也尝试取消注册dll并将计算机上的所有引用删除到此dll.然后重新添加dll并重新注册它.

我写了一个简单的Windows脚本文件来测试dll.这很好用.但是我的.net项目中存在问题,该项目在iis中运行.

谁能帮我这个?..

如果您需要更多信息,请发表评论.谢谢.

解决方法

我有一个类似的问题,“TYPE_E_CANTLOADLIBRARY”消息.

背景:
我有一个使用Interop.ReferenceA.dll的项目.此文件是使用tlbimp ReferenceA.dll / out:Interop.ReferenceA.dll创建的.

解:
当我使用RegDllView查看ReferenceA.dll时,我注意到ReferenceA.dll有一个子类,它是错误消息中显示的IID.
我查看了子类的源代码,发现它与Interop.ReferenceB.dll有依赖关系.

事实证明,子类需要Interop.ReferenceB作为类型库才能工作.所以我跑了这个:

regasm /tlb:Interop.ReferenceB.tlb Interop.ReferenceB.dll(使用了32位版本的regasm.)

错误消失了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读