在ASP.net核心项目的Program.cs
中,我们可以使用IWebHostBuilder
来创建(或构建)IWebHost
,我认为这是一个主机。
创建IWebHost
时,我们可以相应地使用扩展方法Kestrel
或HttpSys
来指定UseKestrel
或UseHttpSys
的网络服务器。 / p>
所以我的问题是ASP.net Core中主机和Web服务器之间的差异和关系。
有人可以解释一下吗?谢谢你提前。
答案 0 :(得分:2)
我建议您查看包含以下定义的ASP.NET核心fundamentals page。我觉得服务器定义中的斜体部分恰当地描述了主机和服务器之间的关系。
<强>托管强>
ASP.NET核心应用程序配置并启动主机,即 负责应用启动和终身管理。
有关详细信息,请参阅Host in ASP.NET Core。
服务器
ASP.NET核心托管模型并没有直接监听 要求。托管模型依赖于HTTP服务器实现 将请求转发给应用程序。转发的请求包装为a 可以通过接口访问的一组要素对象。 ASP.NET Core包含一个托管的跨平台Web服务器,名为 红隼。 Kestrel经常在生产Web服务器后面运行,例如 IIS或Nginx。红隼可以作为边缘服务器运行。
有关详细信息,请参阅Servers和以下主题:
HTTP.sys(以前称为WebListener)