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

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

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

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

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

如何驗證是否在進(jìn)程內(nèi)?

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

那么, 確認(rèn)默認(rèn)情況下它使用"進(jìn)程中"托管模型。

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

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

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

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

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

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

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

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

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

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

為了確認(rèn)該應(yīng)用程序是在InProcess進(jìn)程下執(zhí)行, 將"Hello World!" 修改為顯示當(dāng)前的進(jìn)程名稱, 通過調(diào)用: System.Diagnostics.Process.GetCurrentProcess().ProcessName獲取當(dāng)前的進(jìn)程名稱, 如下所示。

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

這是因為默認(rèn)情況下,Visual Studio 在運行應(yīng)用程序時使用 IISExpress,如下圖所示。

什么是 IIS Express?

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

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

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

一個內(nèi)部 Web 服務(wù)器一個外部 Web 服務(wù)器。

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

InProcess Hosting(進(jìn)程托管)

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

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

什么是Kestrel Web 服務(wù)器?

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

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

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

如何使用 Kestrel Web 服務(wù)器運行應(yīng)用程序?

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

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

如果選擇 IIS Express,則它將使用 IIS 服務(wù)器,如果您選擇 FirstCoreWeb 應(yīng)用程序,則它將使用 Kestrel 服務(wù)器。

使用 IIS Express 運行應(yīng)用程序:

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

使用 Kestrel 服務(wù)器運行應(yīng)用程序:

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

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

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

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

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

相關(guān)文章

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

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

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

    ASP.NET Core中的Options選項模式

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

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

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

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

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

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

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

    asp.net Webconfig中的一些配置

    除了手動編輯此文件以外,您還可以使用Web 管理工具來配置應(yīng)用程序的設(shè)置??梢允褂?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#都有許多語言功能改進(jìn)之外,.NET?6終于集大成,成為跨瀏覽器、云計算、桌面、物聯(lián)網(wǎng)和移動應(yīng)用程序的統(tǒng)一平臺,性能也獲得大幅提升,并且更完整支持Arm64
    2022-01-01
  • ASP.NET中BulletedList列表控件使用及詳解

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

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

    程序中常用的種代碼

    程序中常用的種代碼...
    2006-08-08
  • 搭建基礎(chǔ)結(jié)構(gòu)的ABP解決方案介紹

    搭建基礎(chǔ)結(jié)構(gòu)的ABP解決方案介紹

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

最新評論