ASP.NET Core 程序启动过程如下
了解Program.cs
Program类在启动时创建Web Host。然后,它配置日志记录、依赖注入容器、Kestrel Web服务器、IIS集成等。它还将框架服务添加到DI容器中,以便我们可以使用它。 Program类的代码是vs自动生成的,并且对于大多数项目来说很可能已经足够了。
什么是web host?
Web host负责启动应用程序并运行它。 在应用程序启动时创建。 Web host创建一个服务器,该服务器侦听HTTP请求。 它配置请求管道(或中间件管道)。 另外,它设置了DI容器,我们在其中添加了服务。 管理服务的生命周期也是Web host的任务。
下图显示了如何创建web host
CreateWebHostBuilder 创建主机并为其提供配置。build方法使用提供的配置进行构建。Run方法运行它,然后侦听HTTP请求
Startup 类
ASP.NET Core 应用使用 Startup 类,按照约定命名为 Startup 。 Startup 类:
可选择性地包括 ConfigureServices 方法以配置应用的服务。
必须包括 Configure 方法以创建应用的请求处理管道。
public class Startup
{
// 使用此方法向容器添加服务
public void ConfigureServices(IServiceCollection services)
{
...
}
// 使用此方法配置HTTP请求管道
public void Configure(IApplicationBuilder app)
{
...
}
}
ConfigureServices 方法
ConfigureServices作用即实现了依赖注入(DI)的配置,只有把服务添加到服务容器中才能让这些服务可以通过依赖注入的形式在应用中使用
例如添加Service和Iservice注入
services.AddScoped<IMyDependency, MyDependency>();
Configure 方法
Configure 是一个在
命名空间 Microsoft.AspNetCore.Hosting 定义的 抽象类 ↓↓↓
public abstract void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app);
IApplicationBuilder
IApplicationBuilder 定义用于配置应用请求管道的类,ASP.NET Core 请求管道包含一系列请求委托,依次调用。