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



在我的webAPI项目中使用VB6 DLL(AB5COM.dll(时,我遇到了这个烦人的问题。在我的本地VS2015中一切正常。部署已发布站点后,仅在我的远程 IIS 7.5 (Win2008 R2( 中出现此问题。我在解决方案的 2 个项目中使用此 DLL。

我尝试了几件事——

  • 正在生成互操作。AB5COM
  • 禁用嵌入和复制本地
  • 平台更改为 x86
  • 应用池支持 32 位
  • [组装:ComVisible(true(]
  • 将 [Guid("xxxxx-xx-xxx-xx-xxxx"(] 作为我的类中的属性

一切都是无用的。本地 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 未发布,并且无法注册互操作。

感谢您对此的帮助。

感谢

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

虽然这不是一个正确的解决方案,但我希望我的个人帖子对任何人都有帮助。

最新更新