asp.net 核心中的红隼

Posted

技术标签:

【中文标题】asp.net 核心中的红隼【英文标题】:kestrel in asp.net core 【发布时间】:2022-01-11 07:33:13 【问题描述】:

假设您在服务器上有多个应用程序。是否有 1 个红隼实例处理多个应用程序请求,还是有不同的红隼实例处理不同的 asp.net 核心 Web 应用程序?

任何人都可以提供任何链接或帖子,我可以在其中了解 ASP.NET 核心应用程序的请求如何从客户端传输到服务器。看到这个没有答案的帖子。 The Relationship of Kestrel server and Program.cs in ASP.NET Core request processing

【问题讨论】:

其他 SO 帖子中的图表非常错误。 Kestrel 与 IIS 是一个非此即彼(“xor”)的选择。您不能同时使用两者,除非您单独使用 IIS,您可以将其用作反向代理。 @omajid 您确实可以使用 IIS 托管使用 Kestrel 的 .Net Core 应用程序。在这种情况下,IIS 充当反向代理。 我想我错了。能否指点我的文档以便我了解更多信息? docs.microsoft.com/en-us/aspnet/core/tutorials/… 【参考方案1】:

Kestrel 是 ASP.NET Core 的跨平台 Web 服务器。 Kestrel 是在 ASP.NET Core 项目模板中默认包含并启用的 Web 服务器。 http请求流程可以查看this article:

所以,从上面的文档中,我们可以看到每个 Asp.net 核心应用程序都会有自己的 Kestrel 服务器来托管应用程序。并且,在使用 Kestrel 时,ASP.NET Core 默认绑定到:http://localhost:5000https://localhost:5001,如果有多个应用程序,您应该将它们设置为使用不同的端口或端点。参考:Configure endpoints for the ASP.NET Core Kestrel web server.

【讨论】:

以上是关于asp.net 核心中的红隼的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 核心中的 HttpContext.RewritePath

如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?

asp.net核心中的TempData为空

我心目中的Asp.net核心对象

asp.net 核心中的 jwt 令牌无效

ASP.NET 核心中的 Request.CreateResponse