【发布时间】:2018-03-30 20:26:18
【问题描述】:
我有引用多个 COM 对象的 ASP.Net Core 2.0 MVC 应用程序。我已经通过 Visual Studio 的添加引用过程引用了 COM 对象。参考资料显示在我的解决方案中,例如
互操作.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 引用都是正确的)。
有人知道怎么回事吗?
【问题讨论】:
-
您在与 Microsoft Office 进行互操作吗?
-
不,这是供应商提供的一组 COM 对象。
标签: c# asp.net-mvc iis asp.net-core