Net Core教程

ASPNetCore启动流程和托管模式(1)

本文主要是介绍ASPNetCore启动流程和托管模式(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

直接上代码,重点文字看注释

namespace ProNetCore
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //在内部会先配置K8s服务器和IIS相关,其他配置
            IHostBuilder builder = Host.CreateDefaultBuilder(args);
            //启用用户配置的参数,其中包含我们注册的服务/组件以及请求处理管道相关内容
            builder.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Test>(); });

            //webhost 用来监听Http请求,就会跳转到Startup类中,
            //在Startup类中有Configure这个方法来可以处理:HTTP请求处理
            IHost webhost = builder.Build();//走到这里会跳转到ConfigureServices()这个方法
            webhost.Run();//Run的时候会到Configure()方法里
            //CreateHostBuilder(args).Build().Run();  
        }

        public class Test
        {
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
                app.UseRouting();
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapGet("/", async context =>
                    {
                        await context.Response.WriteAsync($"ProcessName:{System.Diagnostics.Process.GetCurrentProcess().ProcessName}");
                    });
                });
            }
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

  2种托管模式

 1.InProcess(进程内/默认)   2.OutOf(进程外)
 //进程内比进程外提供更好的性能
 //进程内有一个服务器:要么是IIS,要么是K8s
 //进程外有2个服务器:一个是内部服务器(K8s),一个是外部服务器(IIS,nginx....)
 //AspNetCore 内置的服务器是K8s 
 //在调试的时候
 //如果选择IIExpress进行调试:当前进程的名字就是IISExpress  在任务管理器里就会找到一个IISEXpress.exe的文件
//如果选择项目名称ProNetCore进行调试:当前进程的名字就是ProNetCore 

 //IISExpress和IIS的区别:
 //1:IISExpress是轻量级版本,针对开发时优化的一个版本,在实际的生产过程中,往往使用的是IIS

通过dotnet core 进行启动项目

  在浏览器中回车上面的URL都是ok的

 

 

 

  

 

 

这篇关于ASPNetCore启动流程和托管模式(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!