C# IIS 和 Kestrel
直到現(xiàn)在,當開發(fā)人員談到ASP.NET時,都會想到,Web應用程序將運行在Microsoft Windows服務器的Internet Information Services (IIS)中;I!S是Microsoft開發(fā)的—Web服務器,可響應客戶端發(fā)出的HTTP和 HTTPS請求。但因為IIS不能在Linux或macOS上運行,所以需要有一種方法讓HS將請求發(fā)送給能在那些操作系統(tǒng)上運行的Web服務器。這個問題的答案是使用Kestrel,這是ASP.NETCore項目中包含的一個新的跨平臺Web服務器。
如圖所示,當配置Kestrel與IIS —同運行時,客戶端的HTTP請求將被轉發(fā)給Kestrel Web服務器。然后,Kestrel通過傳遞HttpContext類與ASP.NET Core源代碼交互,HttpContext類包含關于HTTP請求的信息,如會話管理信息、查詢字符串、區(qū)域性信息、客戶端證書等。
除IIS,Apache和Nginx也是可供使用的Web服務器,它們只在目標操作系統(tǒng)(如Windows、Linux或 macOS)中運行。ASP.NET Core在運行時,可以沒有任何特定于操作系統(tǒng)的Web服務器,因為Kestrel就是一個Web服務器。以這種方式運行時,常稱為自托管,因為Web應用程序和必要的組件包含在一個專用容器中。通過這種方式將Web應用程序捆綁在一起,使得通過XCOPY等部署Web應用程序變得很容易。而且,可移植性是云優(yōu)化的程序的一個基本特征。
點擊加載更多評論>>