本文出自《从零开始学ASP.NET CORE MVC》 推荐文章:ASP.NET Core 中的 Main方法
ASP.NET Core 进程内(InProcess)托管
当一个 ASP.NET Core 应用程序执行的时候,.NET 运行时会去查找 Main()
方法,因为它是这个应用程序的起点。
然后,Main()
方法调用静态类WebHost
中的静态方法CreateDefaultBuilder()
。
这个CreateDefaultBuilder()
方法执行几个任务,如:
在以后的课程中,我们将讨论 asp.net core 中可用的各种配置源,加载主机和应用程序配置信息以及配置日志记录等内容。
在本视频中,让我们了解CreateDefaultBuilder()
方法用于配置和设置Web服务器的功能。
ASP.NET Core 应用程序可以托管在进程内(InProcess)或进程内(InProcess)中。
在本视频中,我们将讨论进程内(InProcess)托管,在下一个视频中,我们将讨论进程内(InProcess)托管。
进程内(InProcess)托管
NEW
﹀
﹀
﹀
若要配置 InProcess 宿主, 请将<AspNetCoreHostingModel>
添加到应用的项目文件中, 其中的值为 InProcess
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
当我们选择使用一个可用的项目模板,创建一个新的ASP.NET Core项目时,该项目默认为所有的IIS和IIS Express的配置都是作为进程内托管(InProcess)。
在InProcess托管的情况下,CreateDefaultBuilder()
方法调用UseIIS()
方法并在IIS工作进程(w3wp.exe或iisexpress.exe)*内托管应用程序。
System.Diagnostics.Process.GetCurrentProcess().ProcessName
进程外(out-of-Process)托管
NEW
﹀
﹀
﹀
什么是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 CLI做很多事情。
简单说下CLI
使用.NET Core CLI运行我们的Asp.Net Core应用程序。
dotnet run
命令dotnet run
在.NET Core CLI 生成并运行项目之后,它会显示用于访问应用程序的URL。
在我的例子中,应用程序可以通过访问浏览器地址在
http:// localhost:5000 查看内容。
于Kestrel,用于托管和执行应用程序的进程是dotnet.exe
。
因此,当我们导航到http:// localhost:5000
时,我们将看到显示进程名称dotnet
。