using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.IO; namespace New_College { public class Program { /// /// 加载配置文件,构建IConfigurationRoot /// private static readonly IConfigurationBuilder ConfigurationBuilder = new ConfigurationBuilder(); /// /// 获取配置文件中的内容,继承自IConfiguration /// private static IConfigurationRoot _configuration; public static void Main(string[] args) { _configuration = ConfigurationBuilder .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile(cfg => { cfg.Path = "appsettings.json"; cfg.ReloadOnChange = true; cfg.Optional = false; }) //Build方法的调用要在AddJsonFile之后,否则生成的IConfigurationRoot实例的 //Providers属性不包含任何元素而导致无法读取文件中的信息 .Build(); var url = _configuration.GetSection("urls"); //初始化默认主机Builder Host.CreateDefaultBuilder(args) .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(webBuilder => { webBuilder .UseStartup() .UseUrls(url.Value) .ConfigureLogging((hostingContext, builder) => { //过滤掉系统默认的一些日志 builder.AddFilter("System", LogLevel.Error); builder.AddFilter("Microsoft", LogLevel.Error); builder.AddFilter("New_College.AuthHelper.ApiResponseHandler", LogLevel.Error); //可配置文件 var path = Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config"); builder.AddLog4Net(path); }); }) // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。 .Build() // 运行 web 应用程序并阻止调用线程, 直到主机关闭。 // ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※ .Run(); } } }