VS 2015更新2中服务结构中的有状态Web API服务

时间:2016-06-15 17:51:15

标签: visual-studio azure-service-fabric

目前,VS 2015 Update 2提供了一种使用为服务结构应用程序创建新服务模板来创建基于owin的无状态Web api服务的简便方法。有没有理由只提供无状态的web api服务模板而不是有状态的web api服务?如果我想,我可以修改无状态web api服务以从有状态的Web服务派生吗?这么简单吗?或者这种方法有什么问题吗?

2 个答案:

答案 0 :(得分:2)

Web Api旨在成为服务结构应用程序的外观/公共入口点。无国籍使客户无法处理解决分区/地址和其他麻烦。

如果您愿意 - 您可以修改web api服务并使其成为有状态。也许更容易从模板创建有状态服务,安装缺少的包(web api模板有),复制OwinCommunicationListenerStartup,将它们连接到CreateServiceReplicaListeners覆盖,然后添加ServiceManifest.xml的有效服务端点。 OwinCommunicationListener将为每个副本提供唯一的地址。

答案 1 :(得分:1)

是的,你当然可以将它修改为有状态。 Web API非常适合内部服务到服务通信以及面向公众的API。

我们目前正在解决一个问题:无状态的Web主机使用Kestrel,这对于多个副本共享相同进程的有状态服务存在一些困难,因为Kestrel没有相同的端口共享功能基于http.sys的主机。我们正在开发一种解决方案,使Kestrel更易于使用有状态,但与此同时,您始终可以使用WebListener主机,即基于http.sys的主机。

如果您感兴趣,我正在开发一个项目,该项目将具有ASP.NET Core 1状态服务(以及其他很酷的东西),您可以在此处跟踪:https://github.com/vturecek/service-fabric-xray