创建自托管网站 API 还是使用 Asp.Net 核心网站 API?

Create Self Hosted Web API or Use Asp.Net Core Web API?

我有两个选择:

  1. 如果我自己托管 Wep Api uisng OWIN/Katana 我可以获得性能提升,但如前所述 here,我必须编写代码才能具有这些功能IIS,例如日志记录、应用程序池扩展、节流等

  2. 我可以使用不使用不必要的 System.Web 请求管道的 Asp.Net Core 创建 API 吗?并使用 IIS 功能或 Nginx 服务器功能 ?

考虑到性能,哪个是最佳选择?

更新:

我的意思是,我不想使用 IIS,但我想使用自定义代码自行托管具有 IIS 功能的 Web API。或者 Asp .NET Core 将帮助我在没有 IIS 和不必要的 System.Web 请求管道的情况下实现这一目标?

我推荐选项 2,即 ASP.NET Core Web API,原因如下

  • 现在 ASP.NET Core 2 已经出来了,它更专注于更好的性能。您的 API 构建将是最小的(包含应用程序中使用的内容)。
  • Core Web API 可以以最有效的方式构建。 .NET Core 代码可以帮助您在非 windows 机器上进行部署。
  • API 响应速度足够快,因为避免了管道中的许多瓶颈。

随着 Kestrel 的改进,使用 ASP.NET Core 2 是有益的。Web API 可以托管在 IIS/Nginx 上,也可以很容易地独立运行。

我也会选择使用 dotnet core。由于开源社区,中间件和 Nuget 包将不断得到改进。跨平台可能是另一个优势。

此外,dot net core 获得了不错的性能,并且中间件管道非常灵活,可以说它几乎可以涵盖自托管的灵活性功能。