Azure Service Fabric 注册 COM 组件

Posted

技术标签:

【中文标题】Azure Service Fabric 注册 COM 组件【英文标题】:Azure Service Fabric register COM component 【发布时间】:2017-07-13 00:58:54 【问题描述】:

我们希望将 ASP.NET WebApi 服务部署到 Azure Service Fabric。 该服务使用数学 COM 组件(32 位),该组件将在具有 regsvr32 的常规机器上注册。

该解决方案在本地 Service Fabric 群集(例如 Windows Server 2012 R2)上完美运行。 不幸的是,没有可用于该组件的托管 dll,我们不想自己重写代码。

所以我的问题是,我们能否将此服务部署到 Azure 托管的 Service Fabric? 如果是,如何?

【问题讨论】:

您好,您找到解决方案了吗?我也有同样的问题。 【参考方案1】:

您如何在本地集群上调用它 - 通过 PInvoke?有几个想法可以帮助:

你可以使用COM Interop:

tlbimp YourComDll.dll /out: YourDotNetWrapper.dll

然后使用来自 Service Fabric 服务的YourDotNetWrapper.dll。您可能能够摆脱 COM 组件的“xcopy”样式部署,即将它作为资源包含在您的项目中并将其复制到输出文件夹,例如bin/Release.

如果仍需要注册,您可以使用 Process.Start("regsvr32...") 或 via code (PInvoke) 在代码中注册它 - 您可能需要提升 Service Fabric 的权限。

您需要一种机制来只注册一次以避免向注册表发送垃圾邮件。也许是Reliable Dictionary of [NodeName],[IsOurComRegistered],或者只是在注册前检查它是否已注册。

祝你好运!

【讨论】:

【参考方案2】:

您可以尝试通过 StartUp 使用 regsvr32 安装此 COM,看看是否可行。

Here are some notes on Startup Tasks.

【讨论】:

以上是关于Azure Service Fabric 注册 COM 组件的主要内容,如果未能解决你的问题,请参考以下文章

aZURE Service Fabric

Azure Service Fabric:无法运行本地 Service Fabric 群集

Azure Service Fabric 群集端点不可访问

Azure App Service 与 Azure Service Fabric [关闭]

为 Service Fabric 配置 Azure 部署

Azure Service Fabric