我们刚刚建立了一个本地 MS Service Fabric 集群。我想在其中托管一些 WebAPI。我正在寻找有关如何采用标准 4.5 WebAPI 并将其托管在 Service Fabric 中的资源,而无需创建 Service Fabric 项目并迁移它;这看起来太复杂了。
我查看了一些 Service Fabric 示例项目,似乎所有项目都与 Service Fabric 紧密耦合。我的目标是让这些应用程序不知道 Service Fabric。
非常感谢任何信息链接,谢谢!
最佳答案
我们是这样做的:
- 在我们的 WebAPI 的同一解决方案中创建了服务结构项目。
- 在 ServiceFabricHost 项目中,我们创建了 HttpListenerService 以使用服务结构公开端口,就像对 SelfHosted WebApi 执行的操作一样。 .
- 配置 ServiceFabricHost 以打开所需的端点。
- 添加对 WebApi 项目的引用
- 使用 WebApi Startup 发送 IAppBuilder 并使用我们的外部 (SF) 配置(例如端口和 URL)来配置 API。
secret 是:当您创建自托管 Web api 时,通常会创建一个控制台应用程序,如 ASP.NET 文档。使用服务结构,您可以将控制台替换为 ServiceFabricService,这类似于 ConsoleApplication,但在本例中将是无状态服务。
在本例中,我们为 HttpListenerService 使用了无状态服务,如果您需要 StateFull 服务,则需要重构您的 Api 以使用可靠的集合。
Vaclac 同事为此创建了一个很好的教程: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-services-communication-webapi/
关于c# - 在 Service Fabric 上托管 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564979/