无法转换COM对象 - 错误:不支持此类接口

时间:2017-03-20 14:04:44

标签: c# com vb6 interop

在我的webAPI项目中使用VB6 DLL(AB5COM.dll)时,我遇到了这个恼人的问题。 一切都在我当地的VS2015上运行良好。部署发布的站点后,我的远程IIS 7.5(Win2008 R2)中出现问题。 我在我的解决方案的两个项目中使用此DLL。

我尝试了几件事 -

  • 生成interop.AB5COM
  • 禁用嵌入和复制本地
  • 平台更改为x86
  • APP POOL支持32位
  • [assembly:ComVisible(true)]
  • 在我班级中添加[Guid(“xxxxxxx-xxxxx-xxxxxx-xxxxxx”)]作为属性

一切都没用。本地VS2015正常工作,远程IIS7.5因此异常而失败。

System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'AB5COM.trxAB5core'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{AF42661C-D369-454A-A005-55D51037166A}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

我也找不到使用regsvr32注册哪个DLL,因为没有发布COM dll,并且无法注册互操作。

非常感谢您对此的帮助。

THX

1 个答案:

答案 0 :(得分:0)

好的,既然没有答案,我不得不做出一些动作...... 远程IIS环境是我的TEST服务器,因此我已经使用我的解决方案安装了VS2017,运行了我的应用程序(成功)并发布了(成功)。 所以目前我对这个COM DLL没有任何问题,它得出的结论是这是一个纯粹的REGISTRY问题。 VS2015知道如何注册正确的DLL然后所有工作完美。 现在,我需要弄清楚如何使我的生产......

虽然这不是一个合适的解决方案,但我希望我的个人帖子可以帮助任何人。