.Net Core 启动流程和主机(配置) 一

  1. Kestrel是一个跨平台的适用于ASP.NET Core的Web服务器
  2. 你可以把他当作是IIS,但它不是IIS,核心功能是一样,都是提供HTTP服务,他的功能很弱,很少
  3. HTTPS/ HTTS/2,他的性能很高,高性能的HTTP服务器,比IIS的性能要高不少,运行在LINUX上
  4. 主流的用法,与其它反向代理服务器(iginx、IIS、Apache) .结合使用
  5. 直接使用Kresrel

    public class Program
    {
        public static void Main(string[] args)
        {
            // 在我们配置完之前,是不回执行任何配置委托的,我们所有的配置都被延后了
            CreateHostBuilder(args).Build().Run();
        }
        //Build() 将各配置 用委托的方式 用list   结束得到主机的实例  在源码HostBuilder.cs
        //Run() 以阻塞的方式运行主机,应用是一个控制台   在源码 Microsoft.Extensions.Hosting.Internal Host.cs   StartAsync()  依次加入执行配置委托


        // 默认主机构建器 (配置都写好以后)
        // 主机负责应用的启动和生存期管理、配置服务器和请求处理管道
        // 默认设置日志记录、依赖关系的注入和配置
        // 主机是一个封装了应用资源的对象 .NET Core (.NET 核心API)里的一个类(Host)!!
        // .NET Extensions 的源码(.NET CORE 扩展包、日志、)(.NET 功能性的组件)
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            //.NET CORE 有两种主机,泛型(通用)主机
            // Web主机(他是通用主机的扩展,他提供额外WEB功能,支持HTTP,集成了Kestrel,内置了IIS集成)
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    //不建议用硬编码(如下代码),不灵活,用配置文件或者命令行,官网文档去查他配置项的键名

                    //从前缀为“ASPNETCORE"的环境变量加载WEB主机配置
                    //默认是将Kestrel设置为web服务器并对其进行默认配置/支持IIS集成
                    //自定义配置,关于WEB主机

                    //组件配置,不属于主机,但是由主机调用(扩展类提供的配置方法)
                    //(都可以在配置文件完成)
                    //ConfigureKestrel 配置请求
                    webBuilder.ConfigureKestrel(options => options.Limits.MaxRequestBodySize = 1024 * 1024 * 100);
                    //配置日志级别  
                    webBuilder.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Debug));
                    
                    //指定ASP.NET CORE 应用启动类
                    webBuilder.UseStartup<Startup>();
                    //webBuilder.UseUrls("http://*:6000");
                });
    }










    public class Program
    {
        public static void Main(string[] args)
        {
            // 在我们配置完之前,是不回执行任何配置委托的,我们所有的配置都被延后了
            CreateHostBuilder(args).Build().Run();
        }
        //Build() 将各配置 用委托的方式 用list   结束得到主机的实例  在源码HostBuilder.cs
        //Run() 以阻塞的方式运行主机,应用是一个控制台   在源码 Microsoft.Extensions.Hosting.Internal Host.cs   StartAsync()  依次加入执行配置委托


        // 默认主机构建器 (配置都写好以后)
        // 主机负责应用的启动和生存期管理、配置服务器和请求处理管道
        // 默认设置日志记录、依赖关系的注入和配置
        // 主机是一个封装了应用资源的对象 .NET Core (.NET 核心API)里的一个类(Host)!!
        // .NET Extensions 的源码(.NET CORE 扩展包、日志、)(.NET 功能性的组件)
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            //.NET CORE 有两种主机,泛型(通用)主机
            // Web主机(他是通用主机的扩展,他提供额外WEB功能,支持HTTP,集成了Kestrel,内置了IIS集成)
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    //不建议用硬编码(如下代码),不灵活,用配置文件或者命令行,官网文档去查他配置项的键名

                    //从前缀为“ASPNETCORE"的环境变量加载WEB主机配置
                    //默认是将Kestrel设置为web服务器并对其进行默认配置/支持IIS集成
                    //自定义配置,关于WEB主机

                    //组件配置,不属于主机,但是由主机调用(扩展类提供的配置方法)
                    //(都可以在配置文件完成)
                    //ConfigureKestrel 配置请求
                    webBuilder.ConfigureKestrel(options => options.Limits.MaxRequestBodySize = 1024 * 1024 * 100);
                    //配置日志级别  
                    webBuilder.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Debug));
                    
                    //指定ASP.NET CORE 应用启动类
                    webBuilder.UseStartup<Startup>();
                    //webBuilder.UseUrls("http://*:6000");
                });
    }
posted @ 2023-08-28 10:45  不争丶  阅读(288)  评论(0编辑  收藏  举报