ASP.NET Core的幾種伺服器類型[共6篇]
- 2022 年 4 月 11 日
- 筆記
- .NET 6, .NET Core, [01] 技術剖析, Asp.Net, Asp.Net Core, ASP.NET Core 6框架揭秘
作為ASP.NET CORE請求處理管道的「龍頭」的伺服器負責監聽和接收請求並最終完成對請求的響應。它將原始的請求上下文描述為相應的特性(Feature),並以此將HttpContext上下文創建出來,中間件針對HttpContext上下文的所有操作將藉助於這些特性轉移到原始的請求上下文上。除了我們最常用的Kestrel伺服器,ASP.NET CORE還提供了其他類型的伺服器。
[1]自定義一個伺服器
作為ASP.NET Core請求處理管道的「龍頭」的伺服器負責監聽和接收請求並最終完成對請求的響應。它將原始的請求上下文描述為相應的特性(Feature),並以此將HttpContext上下文創建出來,中間件針對HttpContext上下文的所有操作將藉助於這些特性轉移到原始的請求上下文上。學習ASP.NET Core框架最有效的方式就是按照它的原理「再造」一個框架,了解伺服器的本質最好的手段就是試著自定義一個伺服器。閱讀更多…
[2]KestrelServer詳解:註冊監聽終結點(Endpoint)
具有跨平台能力的KestrelServer是最重要的伺服器類型。針對KestrelServer的設置均體現在KestrelServerOptions配置選項上,註冊的終結點是它承載的最重要的配置選項。這裡所謂的終結點(Endpoint)與「路由」介紹的終結點不是一回事,這裡表示的就是伺服器在監聽請求時綁定的網路地址,對應著一個System.Net.Endpoint對象。我們知道ASP.NET Core應用承載API也提供了註冊監聽地址的方法,其本質其實也是為了註冊終結點,那麼兩種註冊方式如何取捨呢?閱讀更多…
[3]KestrelServer詳解: 網路連接的創建
《註冊監聽終結點》已經詳細講述了如何使用KestrelServer,現在我們來簡單聊聊這種處理器的總體設計和實現原理。當KestrelServer啟動的時候,註冊的每個終結點將轉換成對應的「連接監聽器」,後者在監聽到初始請求時會創建「連接」,請求的接收和響應的回復都在這個連接中完成。閱讀更多…
[4]KestrelServer詳解: 自定義一個迷你版的KestrelServer
和所有的伺服器一樣,KestrelServer最終需要解決的是網路傳輸的問題。在《網路連接的創建》,我們介紹了KestrelServer如何利用連接接聽器的建立網路連接,並再次基礎上演示了如何直接利用建立的連接接收請求和回復響應。本篇更進一步,我們根據其總體設計,定義了迷你版的KestrelServer讓讀者看看這個重要的伺服器大體是如何實現的。閱讀更多…
[5]ASP.NET Core 在 IIS 下的兩種部署模式
KestrelServer最大的優勢體現在它的跨平台的能力,如果ASP.NET Core應用只需要部署在Windows環境下,IIS也是不錯的選擇。ASP.NET CORE應用針對IIS具有兩種部署模式,它們都依賴於一個IIS針對ASP.NET CORE Core的擴展模組。閱讀更多…
[6]ASP.NET Core高性能伺服器HTTP.SYS
如果我們只需要將ASP.NET CORE應用部署到Windows環境下,並且希望獲得更好的性能,那麼我們選擇的伺服器類型應該是HTTP.SYS。Windows環境下任何針對HTTP的網路監聽器/伺服器在性能上都無法與HTTP.SYS比肩。閱讀更多…