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:无法运行本地 Service Fabric 群集