位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# IIS 和 Kestrel

提問人:劉團圓發(fā)布時間:2020-12-10

    直到現(xiàn)在,當開發(fā)人員談到ASP.NET時,都會想到,Web應用程序?qū)⑦\行在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ū)域性信息、客戶端證書等。

image.png

    除IIS,Apache和Nginx也是可供使用的Web服務器,它們只在目標操作系統(tǒng)(如Windows、Linux或 macOS)中運行。ASP.NET Core在運行時,可以沒有任何特定于操作系統(tǒng)的Web服務器,因為Kestrel就是一個Web服務器。以這種方式運行時,常稱為自托管,因為Web應用程序和必要的組件包含在一個專用容器中。通過這種方式將Web應用程序捆綁在一起,使得通過XCOPY等部署Web應用程序變得很容易。而且,可移植性是云優(yōu)化的程序的一個基本特征。

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部