引用COM对象的ASP.Net Core 2.0在本地工作,但在部署时不工作

时间:2017-10-18 20:52:49

标签: c# asp.net-mvc iis asp.net-core

我有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引用)。

有人知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

不确定这是否相关,但还有另一个问题,即类似的消息和答案。

这是链接:

Link