一.Main
类似于控制台应用程序,把Main方法作为程序的主入口,通过配置Main()方法 ,然后启动ASP.NET Core,这时他就编程一个ASP.NET Core Web应用程序
1.Build()把项目编程文件,放到服务器进行托管
2.Run()接受客户端发送过来的信息,响应请求
3.WebHost.CreateDefaultBuilder();在服务器配置初始化。配合上UseStartUp()可以做一些你业务上的需求,验证 爬网页等等
4.StartUp中的ConfigureServices()用来配置一些插件或组件需要的服务
5.Configure()接收Http运行池中的管道,接着进行处理
二.ASP.NET Core进程内(InProcess)托管
1.CreateDefaultBuilder()执行的一些任务,设置Web服务器,加载主机和应用程序配置表信息,配置日志记录。ASP.NET Core应用程序托管的形式,在InProcess(进程内托管),OUtProcess(进程外托管)
三.配置进程内托管
1.<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
2.在InProcess托管的情况下,CreateDefaultBuilder()方法嗲用UseIIS()方法并在IIS工作进程(W3WP.ex或IISExpress.exe)内托管应用程序
3.从性能的角度来看,InProcess托管比OutOfProcess托管提供了更高的请求吞吐量
4.获取执行应用程序的进程名称 System.Diagnostics.Process.GetCurrentProcess().ProcessName;
5.进程外托管(OUtOfProcess)托管,有两个Web服务器-内部Web服务器和外部Web服务器,内部Web服务器是Kestrel,外部Web服务器可以是IIS,Nginx或者Apache
6.什么是Kestrel Web Server?Kestrel是ASP.NET Core的跨平台服务器,Kestrel本身也是可以做一个边缘服务器,自己作为一个承载。
进程内托管,改应用程序托管在IIS工作进程中,只有一个Web服务器,从性能角度来看,优于进程外托管
进程外托管:kestrel可以用作面向Internet的web服务器,kestrel还可以与反向代理服务器结合使用,例如IIS,Nginx或Apache