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 宿主, 請將<AspNetCoreHostingModel>添加到應用的項目文件中, 其中的值為?InProcess
當我們選擇使用一個可用的項目模板,創建一個新的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中的進程外托管模型
硬廣專區
如果您覺得我的文章質量還不錯,歡迎打賞,也可以訂閱我的視頻哦
未得到授權不得擅自轉載本文內容,52abp.com保留版權
文字版目錄:?https://www.52abp.com/Wiki/mvc/latest/1.Intro?
代碼托管地址:https://gitee.com/aiabpedu
知乎專欄:https://zhuanlan.zhihu.com/52abp
交流QQ群:952387474《微軟MVP帶你學ASP.NET?CORE》
【收費】騰訊課堂:?https://ke.qq.com/course/392589?tuin=2522cdf3?
【免費】youtube視頻專區:http://t.cn/Ei0F2EB?
【免費】B站:?https://space.bilibili.com/2954671?
免費的更新慢,收費的更新快,僅此而已。就這樣。?
「好看」的人都【在看】↓↓↓
總結
以上是生活随笔為你收集整理的ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Orleans MultiClient
- 下一篇: ML.NET机器学习、API容器化与Az