ASP.NET Core应用程序配置并启动了一个宿主。这个宿主负责app的启动以及生命周期管理。在最小的情况下,这个宿主配置了一个服务以及一个请求处理管道。除此之外,这个宿主也可以建立日志,依赖注入,配置。
这篇文章包含了Web宿主,其仍旧是可用的,不过仅作为向后兼容使用。对于所有的app类型,我们推荐使用Generic Host。
建立一个宿主
使用IWebHostBuilder的一个实例来建立web 宿主。典型的,其会在app的入口点Main函数执行以建立web宿主。
在项目模板中,Main函数包含在Program.cs中,一个典型的app会调用CreateDefaultBuilder 来开始建立一个web 宿主:
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
方法的代码是名为CreateWebHostBuilder
的方法中,它将其与Main函数中的代码分离开,而在Main函数中,我们调用了建造者对象上的Run方法。如果你使用Entity Framework Core tools这个工具的话,这种分离是必须的,这个工具期望找到一个CreateWebHostBuilder
方法,从而它们可以在设计时候进行调用来配置宿主,而不用运行app。另一个替代的方法是使用IDesignTimeDbContextFactory
。更多信息,请 参考Design-time DbContext Creation。
原文:https://www.cnblogs.com/qianxingmu/p/12441547.html