c# - 在 Service Fabric 上托管 Web API

标签 c# asp.net-web-api microservices azure-service-fabric devops

我们刚刚建立了一个本地 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/

相关文章:

c# - 如何处理所有 Controller 上的空模型 aspnet core c#

database - 如何提供具有不同数据库架构的 API 的多个版本?

java - 微服务架构、认证等服务

hadoop - 如何配置 Flume 来监听 web api http 请求

c# - Gtk#:如何将 Gtk.Image 转换为 Gdk?

c# - 从文件中打开图像,然后释放锁定?

c# - 将 DataTable 存储到 SQL Server 列

jquery - 使用 JSONP 的 Ajax 调用不起作用。未提供回拨

microservices - 六边形架构和微服务 : how do they fit together?

c# - UWP 动画重置为 From 状态