Asp.net web api 在Azure Service Fabric中,无状态Web API和ASP.NET核心Web API之间的区别是什么?

Asp.net web api 在Azure Service Fabric中,无状态Web API和ASP.NET核心Web API之间的区别是什么?,asp.net-web-api,azure-service-fabric,Asp.net Web Api,Azure Service Fabric,我没有深入研究那么多,但两者的利弊是什么。。 看起来它们是多余的,显然核心版本是实验性的,可能无法与Odata和Entity Framework等许多核心库一起使用,那么最大的区别是ASP.NET Core Web API实际上是基于.NET Core构建的。这两种类型都将为您提供无状态服务、相同的ServiceManifests、ETW记录器,并且它们以相同的方式启动服务 ASP.NET Core Web API模板使用附加程序集Microsoft.ServiceFabric.AspNetCo

我没有深入研究那么多,但两者的利弊是什么。。
看起来它们是多余的,显然核心版本是实验性的,可能无法与Odata和Entity Framework等许多核心库一起使用,那么最大的区别是ASP.NET Core Web API实际上是基于.NET Core构建的。这两种类型都将为您提供无状态服务、相同的ServiceManifests、ETW记录器,并且它们以相同的方式启动服务

ASP.NET Core Web API模板使用附加程序集
Microsoft.ServiceFabric.AspNetCore.WebListener中的
Microsoft.AspNetCore.Hosting.IWebHost
设置HTTP侦听器(它实际上只包含一个帮助程序,用于创建基于ASP.NET核心主机的侦听器。它还为基于ASP.NET核心MVC的Web Api提供了支架

无状态Web API模板使用项目源中包含的
OwinCommunicationListener
中的
Microsoft.Owin.Hosting.WebApp
设置HTTP侦听器

在Service Fabric如何处理从这两个模板创建服务的结果或您获得的服务类型方面没有任何其他区别,只是作为一个锅炉板开始使用的内容不同。此外,由模板设置的项目没有什么特殊之处,您始终可以创建一个emp手动创建一个新的服务


您基本上是在选择是否要使用.NET Core来构建您的服务。

更多详情:

无状态Web API模板:

  • 基于OWIN的“经典”ASP.NET Web API 2。不支持MVC(无Razor服务器端呈现)
  • 仅限完整的.NET Framework
  • 使用Visual Studio 2015中的“classic”.NET项目类型(.csproj)
  • 用于web主机,该主机构建在System.Net.HttpListener上,该主机本身使用Windows HTTP服务器API(HTTP.sys)
ASP.NET核心模板:

  • 新的ASP.NET核心,它结合了MVC和Web API,提供了Razor服务器端渲染和ASP.NET的大量新功能
  • 完整的.NET Framework或.NET Core,但目前在服务结构中仅支持完整的.NET Framework
  • 在Visual Studio 2015中使用新的.NET项目类型(.xproj)。VS 2015中此项目类型的工具被视为“预览”,并将保持这种状态。在较新的Visual Studio 2017中,工具仅被视为“生产”(已更改回.csproj)这就是为什么我们目前在VS 2015中有两个项目模板的主要原因。
  • 将其中一个用作web主机。
    • WebListener也基于http.sys,并且完全受支持
    • Kestrel基于一个完全不同的跨平台库(libuv),在其当前状态下,我们不建议将其放在一个面向Internet的生产应用程序中,而不使用反向代理来提供DoS保护

尽管它的名字叫什么,但它实际上并不是关于.NET Core的,而是关于您是在使用新的ASP.NET库和工具还是“经典”服务结构SDK本身还不支持.NET Core,因此,即使您使用ASP.NET Core,您仍然必须根据完整的.NET框架进行构建。仍然是这样吗?@l------------,是的,当然仍然是这样,除非您使用SDK的预览版本。预览(3.0适用于可靠的服务/参与者,6.1适用于ServiceFabric)现在针对.NET核心构建支持。请参阅中第6页的详细信息