最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

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

在 InProcess 托管的情況下(即當 CreateDefaultBuilder() 將值視為項目文件中 AspNetCoreHostingModel 元素的 InProcess 時),場景后面的 CreateDefaultBuilder() 方法內(nèi)部調(diào)用 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!" 修改為顯示當前的進程名稱, 通過調(diào)用: 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 服務器

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

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

InProcess Hosting(進程托管)

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

在ASP.NET Core中,使用 Inprocess 托管模型,我們的應用程序?qū)⒃?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應用程序中作為內(nèi)部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 運行應用程序,則它將使用啟動設(shè)置.json 文件中提及的 URL 和端口號。若要證明這使用 IIS Express 運行應用程序,請參閱如下所示的輸出(左邊是配置文件、右邊是瀏覽器輸出)。

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

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

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

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

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

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

相關(guān)文章

最新評論

丘北县| 延长县| 海林市| 深水埗区| 淮北市| 贺兰县| 丽江市| 乐山市| 平潭县| 武鸣县| 灌阳县| 金寨县| 铁岭市| 叙永县| 丰城市| 宜兰市| 横山县| 徐汇区| 荥经县| 玉环县| 藁城市| 巴南区| 松江区| 林口县| 平邑县| 罗甸县| 和龙市| 城步| 重庆市| 卫辉市| 洛扎县| 朝阳县| 潜江市| 项城市| 民乐县| 柏乡县| 佳木斯市| 贵定县| 祁东县| 阜宁县| 揭阳市|