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

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)

    分享創造快樂