两个独立但相似的服务器的原因是什么? 有什么区别? 我可以在码头工具中运行吗? 两者都支持相同的东西,比如所有身份验证类型吗?
答案 0 :(得分:31)
Kestrel vs Weblistener - 我已经强调了下面的根本区别。
(这些词是微软的,我只是为了简洁和清晰而编辑它。请参阅底部链接的来源。)
WebListener 是 仅限Windows 用于ASP.NET Core的HTTP / Web服务器,允许您公开服务器 直接上网 ,无需使用IIS。 WebListener建立在Http.Sys(同样成熟的技术,也支持IIS&#39; HTTP Listener)之上,就像这样 功能丰富的 和 < em>提供针对各种攻击的保护 。
另一方面,Kestrel 是用于ASP.NET Core的 跨平台 Web服务器,旨在 在代理 后面运行(例如IIS或Nginx), 不应直接面向Internet 。红隼相对较新, 没有完整的防御攻击 。它也 不像WebListener那样功能丰富 ,并带有超时限制,大小限制和并发用户限制。
从本质上讲,选择归结为您的Web应用程序的部署方案。
出于安全原因,Kestrel以前总是要求使用具有边缘部署的反向代理(暴露于来自Internet的流量)。在ASP.Net Core 2.x中使用Kestrel不再是这种情况。查看文档以获取更多信息。 Kestrel Web Server Documentation
答案 1 :(得分:3)
答案 2 :(得分:3)
此处找到的ASP.NET 5文档(由Microsoft在2015年8月25日创建的 )列出了在其他答案中找到的图表(请参见右下角书页的第107页,但是第111页) (PDF):https://media.readthedocs.org/pdf/aspnet/theming/aspnet.pdf
如果您使用下列其中一项,红隼通常会有更好的表现:
WebListener 更安全,更慢,并且具有更多功能。它用于这些情况: