我们想将ASP.NET WebAPI服务部署到Azure Service Fabric。
该服务使用数学com组件(32bit),该组件将在带有regsvr32的常规机器上注册。
该解决方案在本地服务面料群集(例如Windows Server 2012 R2)中完美工作。不幸的是,该组件没有可用的托管DLL,我们不想自己重写代码。
所以我的问题是,我们可以将此服务部署到Azure托管的服务面料上吗?
如果是,怎么样?
您在本地群集上如何通过PinVoke称呼它?有几个想法可以提供帮助:
您可以使用com Interop:
tlbimp YourComDll.dll /out: YourDotNetWrapper.dll
然后使用您的服务面料服务中的YourDotNetWrapper.dll
。您也许可以摆脱COM组件的" Xcopy"样式部署,即将其作为项目中的资源包括在内,并将其复制到输出文件夹中,例如。bin/Release
。
如果仍需要注册,则可以在代码中注册。
您将需要一种机制才能进行一次注册以避免垃圾邮件注册表。也许是Reliable Dictionary of [NodeName],[IsOurComRegistered]
,或者只是在注册之前检查它是否已注册。
祝你好运!
您可以尝试通过启动使用regsvr32安装此com,看看是否有效。
以下是一些有关启动任务的注释。