Aar*_*nLS 52 asp.net asp.net-mvc owin katana
我的理解是,您目前可以使用Katana自行托管WebAPI,MVC将在未来版本中具备此功能.基本上Katana将是MVC和WebAPI都可以使用的托管选项.
Kestrel进入了这一局面,我看到一些MS员工在博客上发表了关于它在Linux上托管ASP.NET vNext的信息.
我的理解是Kestrel和Katana都实现了OWIN管道.
从那里它有点模糊.我问自己,为什么Kestrel进入了画面,当看起来Katana可以起到同样的作用,如果你用mono编译它并做了一些努力使它跨平台兼容(也许说起来容易做起来难).
Kestrel和Katana是否有同样的目的?或者是一个专门以某种方式而另一个不是?
Kestrel最终会成为Windows部署的可行选择吗?或者它是否适用于非Windows环境,而Katana仍然是Windows的选择?
我认识到,由于我对Katana/Kestrel缺乏了解,我可能会要求苹果与橘子进行比较,但如果答案是"橘子的酸味比苹果更多",那么IMO就是一个非常有效的答案.
Eil*_*lon 36
Katana是Microsoft的OWIN实现,还包括一些用于安全/身份验证,提供静态文件和其他一些东西的中间件组件.
Kestrel是Microsoft的跨平台开发Web服务器,可以与ASP.NET 5一起使用.
ASP.NET 5没有实现OWIN,但它有一个"桥梁",可以在ASP.NET 5应用程序中使用OWIN组件,包括在Kestrel上运行.
小智 11
可能是一个老问题,但由于快速谷歌搜索引导我在这里,我想没有人问过类似的问题.
引用ASP.NET 5文档:
红隼
Kestrel是一个基于libuv的跨平台Web服务器,libuv是一个跨平台的异步I/O库.Kestrel是开源的,您可以在GitHub上查看Kestrel源代码.通过在项目的project.json中列出的依赖项中包含"Kestrel",可以添加对Kestrel的支持.
选择服务器
如果您打算在Windows服务器上部署应用程序,则应将IIS作为反向代理服务器运行,以管理和代理对Kestrel的请求.如果在Linux上进行部署,则应运行类似的反向代理服务器(如Apache或Nginx)来代理对Kestrel的请求.
对于自托管方案,例如在Service Fabric中运行,我们建议使用不带IIS的Kestrel.但是,如果在自托管方案中需要Windows身份验证,则应选择WebListener.
所以,我的理解是:如果Kestrel只是一个开发服务器,它不再是,并以某种方式取代Katana和OWIN.
阅读该问题下的其他答案后,我仍然看不到清晰的画面,因此我进行了一些研究,这是我的结论:
最后但并非最不重要的:
ASP.NET 5已死,并由ASP.NET Core取代。所以不要再提了。
(更新于2019/06/28:“今天,我们宣布.NET Core 3.0之后的下一个版本将是.NET 5”-通过MS https://devblogs.microsoft.com/dotnet/introducing-net- 5 /。这意味着将有ASP.Net 5,它实际上是下一代ASP.Net Core。
OWIN是ASP.NET 4.X和ASP.NET Core中的关键/必要事项。
有关更多信息,您可以阅读https://www.quora.com/Is-ASP-NET-Core-a-replacement-for-OWIN-Katana
“Project Katana”包括 Microsoft 为 OWIN 添加对 IIS 的支持,创建 OwinHost.exe,并提供库以允许应用程序与自托管 WebAPI 交互。ASP.NET MVC 5(不是 ASP.NET Core)使用其中一些库(例如 Microsoft.Owin.Security)来通过 OWIN 连接身份/身份验证,但 MVC 5 不支持自托管(尽管可以使用其他工具)。SelfHosting 库仅适用于 WebAPI。
所以“Katana”是一个广义的术语,指的是 OWIN 的主机实现和 Web 应用程序支持:“这些组件包括基础设施组件,例如主机和服务器,以及功能组件,例如身份验证组件和框架绑定例如 SignalR 和 ASP.NET Web API。”
您可能会看到诸如“从 Katana 迁移到 ASP.NET Core”之类的短语,它们指的是 Web 应用程序端。这意味着放弃 Microsoft.Owin 库,并使用内置完整 OWIN 支持的 ASP.NET Core,而无需额外的库。或者您可能会看到类似的短语,这意味着将 Katana 主机移至另一台主机,例如 Kestrel。不幸的是,该术语用于指代实现的任何一侧,但几乎没有说明,您必须注意讨论的上下文。
Kestrel 只是一个主机实现。其目标是提供跨多个平台的 OWIN 托管支持。它更轻量级,不像 IIS 那样功能齐全或成熟。建议在 IIS、Apache、nginx 等更安全、更可靠的 Web 服务器的反向代理后面使用它。Kestrel 是 Microsoft 当前文档推荐的主机,用于在 Linux 等其他平台上部署 ASP.NET Core Web 应用程序。
如果您创建一个 ASP.Net Core 项目,则默认情况下当前包含 Kestrel。它在 ASP.NET Core 支持的相同平台上受支持。
归档时间: |
|
查看次数: |
10526 次 |
最近记录: |