WebApplication 类
ASP.NET Core 有3个 Host 类,是ASP.NET Core中用于初始化,生命周期管理,启动Web 服务的最重要的类。所以详细重点分析一下这几个类,分别是:
WebApplication,ASP.NET Core 6 引入的替代WebHost的类,可以用于 Web App或者 Web API
Host,非 Web App或者Web API 使用的 Host 类,比如纯控制台,或者 Windows Service。
WebHost,ASP.NET Core 6之前的版本使用的Host类。此处不再学习。
2个静态方法
CreateBuilder(),用于创建WebApplicationBuilder 对象,再用 Build 模式添加一些中间件,再创建WebApplication对象。
Create(),用于直接创建一个WebApplication对象,会默认添加和配置一些中间件。
使用CreateBuilder的例子代码:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
直接创建一个WebApplication对象的例子代码:
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
然后再用 Run()方法启动Web服务。包括 Run(),共有3个方法启动Web服务,区别是:
Run(),阻塞当前线程,直到 Host 关闭。
RunAsync(),启动 Host 的 Task,只有当 token 或者 shutdown 被触发时才会完成此。
StartAsync(),启动 Host的 Task,启动成功后立即返回 Task,然后 HTTP Server 可以接收 HTTP Request 。