C# IIS 和 Kestrel
直到现在,当开发人员谈到ASP.NET时,都会想到,Web应用程序将运行在Microsoft Windows服务器的Internet Information Services (IIS)中;I!S是Microsoft开发的—Web服务器,可响应客户端发出的HTTP和 HTTPS请求。但因为IIS不能在Linux或macOS上运行,所以需要有一种方法让HS将请求发送给能在那些操作系统上运行的Web服务器。这个问题的答案是使用Kestrel,这是ASP.NETCore项目中包含的一个新的跨平台Web服务器。
如图所示,当配置Kestrel与IIS —同运行时,客户端的HTTP请求将被转发给Kestrel Web服务器。然后,Kestrel通过传递HttpContext类与ASP.NET Core源代码交互,HttpContext类包含关于HTTP请求的信息,如会话管理信息、查询字符串、区域性信息、客户端证书等。
除IIS,Apache和Nginx也是可供使用的Web服务器,它们只在目标操作系统(如Windows、Linux或 macOS)中运行。ASP.NET Core在运行时,可以没有任何特定于操作系统的Web服务器,因为Kestrel就是一个Web服务器。以这种方式运行时,常称为自托管,因为Web应用程序和必要的组件包含在一个专用容器中。通过这种方式将Web应用程序捆绑在一起,使得通过XCOPY等部署Web应用程序变得很容易。而且,可移植性是云优化的程序的一个基本特征。
点击加载更多评论>>