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

C# IIS 和 Kestrel

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-10

    直到現(xiàn)在,當(dāng)開發(fā)人員談到ASP.NET時(shí),都會想到,Web應(yīng)用程序?qū)⑦\(yùn)行在Microsoft Windows服務(wù)器的Internet Information Services (IIS)中;I!S是Microsoft開發(fā)的—Web服務(wù)器,可響應(yīng)客戶端發(fā)出的HTTP和 HTTPS請求。但因?yàn)镮IS不能在Linux或macOS上運(yùn)行,所以需要有一種方法讓HS將請求發(fā)送給能在那些操作系統(tǒng)上運(yùn)行的Web服務(wù)器。這個(gè)問題的答案是使用Kestrel,這是ASP.NETCore項(xiàng)目中包含的一個(gè)新的跨平臺Web服務(wù)器。

    如圖所示,當(dāng)配置Kestrel與IIS —同運(yùn)行時(shí),客戶端的HTTP請求將被轉(zhuǎn)發(fā)給Kestrel Web服務(wù)器。然后,Kestrel通過傳遞HttpContext類與ASP.NET Core源代碼交互,HttpContext類包含關(guān)于HTTP請求的信息,如會話管理信息、查詢字符串、區(qū)域性信息、客戶端證書等。

image.png

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

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

相關(guān)視頻回答
回復(fù)(0)
返回頂部