歡迎光臨
每天分享高質量文章

ASP.NET Core 行程內(InProcess)託管(6)《從零開始學ASP.NET CORE MVC》:

 

本文出自《從零開始學ASP.NET CORE MVC》
推薦文章:ASP.NET Core 中的 Main方法

ASP.NET Core 行程內(InProcess)託管

在這個影片中我們將討論

  • 在ASP.NET Core中的行程內(InProcess)託管模型
  • 什麼是Kestrel伺服器

當一個 ASP.NET Core 應用程式執行的時候,.NET 執行時會去查詢 Main()方法,因為它是這個應用程式的起點。

然後,Main()方法呼叫靜態類WebHost中的靜態方法CreateDefaultBuilder()
這個CreateDefaultBuilder()方法執行幾個任務,如:

  • 將 Kestrel 用作 Web 伺服器並啟用 IIS 整合。
  • 從種配置源中載入配置。
  • 配置日誌記錄

在以後的課程中,我們將討論 asp.net core 中可用的各種配置源,載入主機和應用程式配置資訊以及配置日誌記錄等內容。

在本影片中,讓我們瞭解CreateDefaultBuilder()方法用於配置和設定Web伺服器的功能。
ASP.NET Core 應用程式可以託管在行程內(InProcess)或行程內(InProcess)中。
在本影片中,我們將討論行程內(InProcess)託管,在下一個影片中,我們將討論行程內(InProcess)託管。

行程內(InProcess)託管

NEW

若要配置 InProcess 宿主, 請將新增到應用的專案檔案中, 其中的值為 InProcess

<AspNetCoreHostingModel>InProcessAspNetCoreHostingModel>

 

當我們選擇使用一個可用的專案模板,建立一個新的ASP.NET Core專案時,該專案預設為所有的IIS和IIS Express的配置都是作為行程內託管(InProcess)。

在InProcess託管的情況下,CreateDefaultBuilder()方法呼叫UseIIS()方法併在IIS工作行程(w3wp.exe或iisexpress.exe)*內託管應用程式。

  • 從效能的角度來看,InProcess託管比OutOfProcess託管提供了更高的請求吞吐量。
  • 對於IIS,執行應用程式的行程名稱是w3wp,對於IIS Express,它是iisexpress
  • 要獲取執行應用程式的行程名稱,請使用System.Diagnostics.Process.GetCurrentProcess().ProcessName
  • 當我們從Visual Studio執行專案時,它預設使用IISExpress。
  • IIS Express是IIS的輕量級自包含版本,針對應用程式開發進行了最佳化。我們不會將它用於生產。在生產中我們會使用IIS。
  • 我們會在後面的課程中帶著大家,在IIS上部署ASP.NET Core 應用程式。

     

行程外(out-of-Process)託管

NEW

    • 有2個Web伺服器 ,內部Web伺服器和外部Web伺服器。
    • 內部Web伺服器是Kestrel, 外部Web伺服器可以是IIS,Nginx或Apache。
    • 使用InProcess託管,只有一個Web伺服器,承載asp.net Core應用程式的IIS。
      因此,在內部和外部Web伺服器之間,他們的代理和請求不沒有效能的損失。

 

什麼是Kestrel

Kestrel是ASP.NET Core的跨平臺Web伺服器。.NET Core支援的所有平臺和版本都支援它。它預設包含在ASP.NET Core中作為內部伺服器。
Kestrel本身可以用作邊緣伺服器,即面向網際網路的Web伺服器,它可以直接處理來自客戶端的傳入HTTP請求。

在Kestrel中,用於託管應用程式的行程是dotnet.exe。當我們使用.NET Core CLI(命令列介面)執行.NET Core應用程式時,應用程式使用Kestrel作為Web伺服器。

.NET Core CLI是一個用於開發.NET核心應用程式的跨平臺工具。使用CLI命令我們做:

  • 根據指定的模板建立新專案,配置檔案或解決方案
  • 恢復.Net Core 專案所需的所有依賴項和工具包
  • 生成專案及其所有依賴項
  • 執行.net Core專案等等……

我們可以使用.NET Core CLI做很多事情。

簡單說下CLI

使用.NET Core CLI執行我們的Asp.Net Core應用程式。

  • 啟動Windows命令提示符
  • 將目錄更改為包含asp.net Core 專案的檔案夾,然後執行dotnet run命令
  • C:\ Projects \Source\repos\ StudentManagement \ StudentManagement > dotnet run

在.NET Core CLI 生成並執行專案之後,它會顯示用於訪問應用程式的URL。
在我的例子中,應用程式可以透過訪問瀏覽器地址在
http:// localhost:5000 檢視內容。

於Kestrel,用於託管和執行應用程式的行程是dotnet.exe

因此,當我們導航到http:// localhost:5000時,我們將看到顯示行程名稱dotnet

下一個影片: ASP.NET Core中的行程外託管模型

    已同步到看一看
    贊(0)

    分享創造快樂