asp.net core之主机学习

asp.net core 主要是用来处理http请求的web应用。 使用了用于托管web应用的web主机(WebHostBuilder),对于其它类型的主机(例如消息、后台任务和其他非 HTTP 工作负载),请使用通用主机(HostBuilder)。 在程序入口Program类Main方法中创建IWebHostBuilder实例的主机,通常应用调用WebHost静态类的CreateDefaultBuilder方法开始创建主机。

        public class Program
        {
            public static void Main(string[] args)
            {
                CreateWebHostBuilder(args).Build().Run();
            }

            public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                    .UseStartup<Startup>();
        }

CreateDefaultBuilder 执行下列任务:

  • 使用应用的托管配置提供程序将 Kestrel 服务器配置为 Web 服务器。

  • 将内容根设置为由 Directory.GetCurrentDirectory 返回的路径。

  • 加载配置(主机配置和系统配置)

  • 添加输出日志工具

  • 启动IIS集成

也可以实例化一个web主机,可以根据项目的需求自定义一些配置信息:

        public static IWebHost CreateWebHostBuilder(string[] args)
        {
            var builder = new WebHostBuilder();
            
            return builder
                .UseKestrel((builderContext, options) =>
                {
                    options.Configure(builderContext.Configuration.GetSection("Kestrel"));
                })
                .UseContentRoot(Directory.GetCurrentDirectory())
                .ConfigureAppConfiguration((hostingContext, config) =>
                {
                    var env = hostingContext.HostingEnvironment;
                    config.SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile(Path.Combine("Configs", "appsettings.json"), optional: false, reloadOnChange: true)
                          .AddJsonFile(Path.Combine("Configs", $"appsettings.{env.EnvironmentName}.json"))
                          .AddEnvironmentVariables();
                })
                .ConfigureLogging((hostingContext, logging) =>
                {
                    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                    logging.ClearProviders();
                    //logging.AddDatabase();
                })
                .UseIIS()
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
        }

主要参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/web-host?view=aspnetcore-2.2#manage-the-host

转载于:https://my.oschina.net/u/1019043/blog/3102780

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值