欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET?Core托管模型CreateDefaultBuilder()方法

 更新時間:2022年02月09日 09:29:22   作者:痕跡g  
這篇文章介紹了ASP.NET?Core托管模型CreateDefaultBuilder()方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

讓我們討論一下 CreateDefaultBuilder() 方法究竟對配置和設置 Web 服務器的作用。從托管的角度來看,一個ASP.NET Web 應用程序可以通過兩種方式托管,即進程托管(InProcess)或進程外托管(OutOfProcess)。

注:當我們使用任何模板創(chuàng)建新 ASP.NET Core Web 應用程序時,默認情況下,使用InProcess 托管創(chuàng)建項目文件,該托管用于在 IIS 或 IIS Express 方案中托管應用程序。

如何驗證是否在進程內?

為了驗證上面的觀點,打開項目屬性。右鍵單擊項目,然后從上下文菜單中選擇屬性選項。打開屬性窗口后,選擇"調試"并查看"托管模型"下拉列表的值,如下圖所示。下拉列表包含三個值,即默認值(進程內)、進程內和進程外。

那么, 確認默認情況下它使用"進程中"托管模型。

如何在ASP.NET Core中配置InProcess托管?

要為 ASP.NET Core Web 應用程序配置 InProcess 托管,只有一個簡單的設置,只需將 元素添加到值為InProcess 的應用程序項目文件中。為此,只需從解決方案資源管理器右鍵單擊應用程序,然后單擊上下文菜單中的"編輯項目文件"選項,如下代碼所示。

打開應用程序項目文件后,請對其進行修改,如下所示。此處添加元素并將其值設置為 InProcess。該節(jié)點也可以是OutOfProcess。

將托管模型設置為 InProcess 時會發(fā)生什么?

在 InProcess 托管的情況下(即當 CreateDefaultBuilder() 將值視為項目文件中 AspNetCoreHostingModel 元素的 InProcess 時),場景后面的 CreateDefaultBuilder() 方法內部調用 UseIIS() 方法。然后在 IIS 工作程序(即 iIS 的 w3wp.exe 和 Iisxpress.exe 的 IISExpress)中托管應用程序。

從性能的角度來看,InProcess 托管模型提供的請求吞吐量明顯高于 OutOfProcess 托管模型。

在 IIS 中,將用于執(zhí)行應用程序的進程名稱是 w3wp。同樣,如果是 IIS Express,則進程名稱將是 iisexpress。

如何確定是否在InProcess進程下執(zhí)行?

默認情況下, 如果您要運行該應用程序,那么您將在瀏覽器中看到以下 “Hello World!” 輸出。

下面, 標記了輸出“Hello World”位置的代碼片段, 位于Startup類的Configure()方法中, 如下所示。

為了確認該應用程序是在InProcess進程下執(zhí)行, 將"Hello World!" 修改為顯示當前的進程名稱, 通過調用: System.Diagnostics.Process.GetCurrentProcess().ProcessName獲取當前的進程名稱, 如下所示。

再次啟動程序, 將在瀏覽器中顯示以下信息, 如下所示。

這是因為默認情況下,Visual Studio 在運行應用程序時使用 IISExpress,如下圖所示。

什么是 IIS Express?

IIS Express 是 IIS 的輕量級自包含版本。它針對 Web 應用程序開發(fā)進行了優(yōu)化。您需要記住的最重要的一點是,我們僅在開發(fā)中使用 IIS Express,而不是生產(chǎn)。在生產(chǎn)中,我們通常使用 IIS。

為什么InProcess比OutOfProcess提供更好的性能?

在進程外(OutOfProcess)托管的情況下,有 2 臺 Web 服務器

一個內部 Web 服務器一個外部 Web 服務器。

內部 Web 服務器稱為Kestrel,外部Web 服務器可以是IIS、Nginx****或 Apache。使用 InProcess 托管模型時,只有一個Web 服務器,即 IIS。因此,對于 InProcess 托管模型,我們在內部和外部 Web 服務器之間導航請求沒有性能損失。這就是 InProcess 托管模型提供比 OutOfProcess 托管模型更高的請求吞吐量的原因。

InProcess Hosting(進程托管)

在上面的內容講到, 我們可以通過右鍵選擇屬性, 更改應用程序的托管模型, 也可以通過右鍵編輯項目文件編輯節(jié)點來設置, 如下所示。

在ASP.NET Core中,使用 Inprocess 托管模型,我們的應用程序將在 IIS 工作程序中托管。最重要的一點,需要記住的是,我們只有一個Web服務器,即 IIS服務器的情況下,InProcess托管,這將托管我們的應用程序,如下圖所示。

什么是Kestrel Web 服務器?

ASP.NET Core是一個跨平臺框架。 這意味著它支持在不同類型的操作系統(tǒng)(例如Windows,Linux或Mac)上開發(fā)和運行應用程序。

Kestrel是ASP.NET Core應用程序的跨平臺Web服務器。 這意味著該服務器支持ASP.NET Core支持的所有平臺和版本。 默認情況下,它包含在.NET Core應用程序中作為內部Web服務器。

Kestrel Web服務器通常用作邊緣服務器,即面向Internet的Web服務器,它直接處理來自客戶端的傳入HTTP請求。 對于Kestrel Web服務器,用于承載和運行ASP.NET Core應用程序的進程名稱是項目名稱。

如何使用 Kestrel Web 服務器運行應用程序?

在使用 Kestrel 服務器運行應用程序之前,讓我們首先打開應用程序的屬性文件夾中的launchSettings.json文件。打開launchSettings.json 文件后,默認情況下,您將找到以下代碼。

在這里,您可以看到,我們有兩個部分。 一種用于IIS Express(IIS服務器),另一種用于Kestrel服務器。 在Visual Studio中,您可以找到上述兩個配置文件(IIS Express和FirstCoreWebApplication),如下所示。

如果選擇 IIS Express,則它將使用 IIS 服務器,如果您選擇 FirstCoreWeb 應用程序,則它將使用 Kestrel 服務器。

使用 IIS Express 運行應用程序:

如果您使用 IIS Express 運行應用程序,則它將使用啟動設置.json 文件中提及的 URL 和端口號。若要證明這使用 IIS Express 運行應用程序,請參閱如下所示的輸出(左邊是配置文件、右邊是瀏覽器輸出)。

使用 Kestrel 服務器運行應用程序:

為了使用 Kestrel 服務器在 Visual Studio 中運行應用程序,首先,您需要修改你的啟動方式為你當前的應用程序名稱,如下所示。

選擇 應用程序方式啟動后,現(xiàn)在運行該應用程序。在這里,我們需要觀察兩件事。首先,它將啟動命令提示符并使用 Kestrel 服務器托管應用程序,如下所示。在這里,您需要關注 URL 和端口號,并且應該是launchSettings.json文件的WebApplication4(這里根據(jù)您實際的程序名稱顯示)配置文件中提到的URL和端口號。

請參閱如下所示的輸出(左邊是配置文件、右邊是瀏覽器輸出以及打開的.NETCLI輸出窗口)。

注:在這個的示例中,對于 IIS Express,端口號為 12166,輔助進程為 iisexpress,而對于 Kestrel 服務器,端口號為 5000,輔助進程名稱為 WebApplication4 應用程序(它只不過是您的應用程序名稱)。

到此這篇關于ASP.NET Core托管模型CreateDefaultBuilder()方法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • ORM框架之Dapper簡介和性能測試

    ORM框架之Dapper簡介和性能測試

    這篇文章介紹了ORM框架之Dapper簡介和性能測試,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01
  • ASP.NET Core中的Options選項模式

    ASP.NET Core中的Options選項模式

    這篇文章介紹了ASP.NET Core中的Options選項模式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Linux?CentOS下docker部署Asp.Net?Core(.Net6)

    Linux?CentOS下docker部署Asp.Net?Core(.Net6)

    這篇文章介紹了Linux?CentOS下docker部署Asp.Net?Core(.Net6)的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • .NET?6新增的20個API介紹

    .NET?6新增的20個API介紹

    這篇文章介紹了.NET?6新增的20個API,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • WPF使用ValidationRules對MVVM架構數(shù)據(jù)驗證

    WPF使用ValidationRules對MVVM架構數(shù)據(jù)驗證

    這篇文章介紹了WPF使用ValidationRules對MVVM架構數(shù)據(jù)驗證的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • asp.net Webconfig中的一些配置

    asp.net Webconfig中的一些配置

    除了手動編輯此文件以外,您還可以使用Web 管理工具來配置應用程序的設置。可以使用 Visual Studio 中的“網(wǎng)站”->“Asp.Net 配置”選項。
    2010-07-07
  • .NET?6更新使.NET生態(tài)系統(tǒng)蛻變

    .NET?6更新使.NET生態(tài)系統(tǒng)蛻變

    微軟正式發(fā)布.NET最新長期支持版本.NET?6,這個版本的更新重點,除了C#和F#都有許多語言功能改進之外,.NET?6終于集大成,成為跨瀏覽器、云計算、桌面、物聯(lián)網(wǎng)和移動應用程序的統(tǒng)一平臺,性能也獲得大幅提升,并且更完整支持Arm64
    2022-01-01
  • ASP.NET中BulletedList列表控件使用及詳解

    ASP.NET中BulletedList列表控件使用及詳解

    本文主要介紹了ASP.NET中BulletedList列表控件的詳細使用方法,講解各屬性的含義以及三種顯示模式,希望能幫到大家。
    2016-04-04
  • 程序中常用的種代碼

    程序中常用的種代碼

    程序中常用的種代碼...
    2006-08-08
  • 搭建基礎結構的ABP解決方案介紹

    搭建基礎結構的ABP解決方案介紹

    這篇文章介紹了搭建基礎結構的ABP解決方案的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02

最新評論