目前,VS 2015 Update 2提供了一种使用为服务结构应用程序创建新服务模板来创建基于owin的无状态Web api服务的简便方法。有没有理由只提供无状态的web api服务模板而不是有状态的web api服务?如果我想,我可以修改无状态web api服务以从有状态的Web服务派生吗?这么简单吗?或者这种方法有什么问题吗?
答案 0 :(得分:2)
Web Api旨在成为服务结构应用程序的外观/公共入口点。无国籍使客户无法处理解决分区/地址和其他麻烦。
如果您愿意 - 您可以修改web api服务并使其成为有状态。也许更容易从模板创建有状态服务,安装缺少的包(web api模板有),复制OwinCommunicationListener
和Startup
,将它们连接到CreateServiceReplicaListeners
覆盖,然后添加ServiceManifest.xml的有效服务端点。 OwinCommunicationListener将为每个副本提供唯一的地址。
答案 1 :(得分:1)
我们目前正在解决一个问题:无状态的Web主机使用Kestrel,这对于多个副本共享相同进程的有状态服务存在一些困难,因为Kestrel没有相同的端口共享功能基于http.sys的主机。我们正在开发一种解决方案,使Kestrel更易于使用有状态,但与此同时,您始终可以使用WebListener主机,即基于http.sys的主机。
如果您感兴趣,我正在开发一个项目,该项目将具有ASP.NET Core 1状态服务(以及其他很酷的东西),您可以在此处跟踪:https://github.com/vturecek/service-fabric-xray。