红隼和武士刀之间的区别

我的理解是,你现在可以使用Katana自己托pipeWebAPI,并且MVC将在未来的版本中具有这种能力。 本质上Katana将是一个可用于MVC和WebAPI的托pipe选项。

Kestrel已经进入了图片,我看到一些MS员工在博客上展示了在Linux上托pipeASP.NET vNext。

我的理解是Kestrel和Katana都实现了OWINpipe道。

从那里,这是一点点模糊。 我问自己,为什么Kestrel进入图片,看起来Katana可以达到相同的目的,如果你编写单声道,并做了一些努力,使其跨平台兼容(可能说起来容易做起来)。

Kestrel和Katana服务于同样的目的吗? 或者是一个专门从事某种方式,另一个不是?

Kestrel最终将成为Windows部署的可行select吗? 或者将它专门用于非Windows环境,Katana仍然是Windows的select?

我认识到我可能会要求一个苹果比较桔子,因为我不知道武士刀/红隼,但如果答案是“橙子比苹果有更多的酸性味道”,那么国际海事组织是一个完全有效的答案。

Katana是微软的OWIN实现,还包括一些中间件组件,用于安全/authentication,提供静态文件等等。

Kestrel是Microsoft的跨平台开发Web服务器,可以与ASP.NET 5一起使用。

ASP.NET 5没有实现OWIN,但有一个“桥梁”,使OWIN组件可以在ASP.NET 5应用程序中使用,包括在Kestrel上运行。

可能是一个古老的问题,但由于谷歌快速search引导我在这里,我认为没有人问过类似的问题。

引用ASP.NET 5文档:

红隼

Kestrel是基于libuv的跨平台Web服务器,它是一个跨平台的asynchronousI / O库。 Kestrel是开源的,您可以在GitHub上查看Kestrel源代码。 通过在project.json中列出的项目依赖中包含“Kestrel”来添加对Kestrel的支持。

select一个服务器

如果您打算在Windows服务器上部署应用程序,则应该将IIS作为反向代理服务器运行,以pipe理和代理向Kestrel发送的请求。 如果在Linux上部署,您应该运行一个类似的反向代理服务器,如Apache或Nginx,以代理向Kestrel发送请求。

对于自托pipescheme,例如在服务结构中运行,我们build议使用不带IIS的Kestrel。 但是,如果您在自托pipescheme中需要Windows身份validation,则应该selectWebListener。

所以,我的理解是:如果Kestrel只是一个开发服务器,现在不再是了,它正在以某种方式取代Katana和OWIN。

“Katana项目”包括Microsoft为OWIN添加对IIS的支持,创buildOwinHost.exe,并提供库以允许应用程序与自主托pipe的WebAPI进行交互 。 其中一些库如Microsoft.Owin.Security被ASP.NET MVC 5(而不是ASP.NET Core)用来通过OWIN连接身份/authentication,但是MVC 5不支持自己托pipe(尽pipe可以使用其他工具)。 SelfHosting库仅用于WebAPI。

所以“Katana”是一个广义的术语,指的是主机实现以及OWIN的Web应用程序支持: “这些组件包括基础结构组件,如主机和服务器,以及function组件,如身份validation组件和绑定到框架如SignalR和ASP.NET Web API“。

您可能会看到诸如“从Katana迁移到ASP.NET Core”这样的短语,这些短语参考了Web应用程序端。 这意味着放弃Microsoft.Owin库,并使用内置完整OWIN支持的ASP.NET Core,而不需要额外的库。 或者你可能会看到一个类似的短语,这意味着从一个卡塔纳主机移动到另一个主机,如红隼。 不幸的是,这个术语被用来在实施的任何一方参考而没有什么明确的说明,而且你必须注意讨论的上下文。

Kestrel只是一个主机实现。 其目标是在多个平台上提供OWIN托pipe支持。 它更轻量级,而不像IIS那样function齐全或成熟。 build议在IIS,Apache,nginx或其他更安全和反弹的Web服务器的反向代理之后使用它。 Kestrel是Microsoft当前文档推荐的在其他平台(如Linux)上部署ASP.NET Core Web应用程序的主机。

如果你创build一个ASP.Net Core项目,那么Kestrel目前是默认包含的。 它在ASP.NET Core支持的相同平台上得到支持。