我有ASP.Net Core 2.0 MVC应用程序,它引用了几个COM对象。我通过Visual Studio的Add Reference过程引用了COM对象。参考资料显示在我的解决方案中,例如
Interop.XYZ
VS会自动将Embed Interop Types设置为true,因为它应该这样做。
解决方案构建并运行,我可以在本地成功使用这些引用中的方法。
当我将其发布到另一台计算机上的IIS时,虽然我收到此错误:
使用CLSID检索组件的COM类工厂 {5D9E1092-69D4-11D2-BCBB-0000E82BB3D3}因以下原因失败 错误:80040154未注册类(HRESULT异常: 0x80040154(REGDB_E_CLASSNOTREG))。
我的应用程序池已启用32位应用程序设置为true。在我的项目属性中,平台目标设置为任何CPU(我尝试将其强制为x86,并且该站点在发布后甚至不会在IIS上运行)。
我使用.Net 4.7对应用程序进行了克隆,并使用相同的COM引用以相同的方式对其进行了配置,并将其发布到同一服务器上的第二个站点。该应用程序的已发布版本工作正常,所以我不认为这是一个没有注册的程序集的问题(不应该在任何情况下,因为嵌入互操作类型适用于所有COM引用)。
有人知道发生了什么事吗?