Startup类
Startup 类
配置应用所需的服务,服务就是应用所需要的的组件
定义请求处理管道
需要将配置的服务添加到ConfigureServices中
Configure方法以创建应用的请求处理管道
在应用启动时,ASP.NET Core 运行时会调用 ConfigureServices 和 Configure,在调用 Configure 方法之前,大多数服务都不可用
只能将IWebHostEnvironment,IHostEnvironment,IConfiguration服务类型注入到构造函数中
// 中断响应 Run():添加中间件并终止请求管道
app.Run(context => context.Response.WriteAsync("I am Hello world"));
public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); // 基架工具自动创建 DB 上下文并将其注册到依赖关系注入容器。 services.AddDbContext<RazorPagesMovieContext>(options => options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext"))); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); }); } }
指定主机生成器,主机是封装应用资源的对
调用 CreateHostBuilder 方法以创建和配置生成器对象。
对生成器对象调用 Build 和 Run 方法
Http管道模型就是请求处理的步骤,默认由Kestrel服务器解析,
HttpContext->经过多个步骤处理成Response,然后回传给用户
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}

浙公网安备 33010602011771号