创建区别
- WebApplicationBuilder
var builder = WebApplication.CreateBuilder(args);
// 在UseKestrel()方法中指定IP和端口
builder.WebHost.UseKestrel(options =>
{
options.Listen(IPAddress.Parse("127.0.0.1"), 5000); // 指定IP和端口号
});
builder.Services.AddControllers();
var app = builder.Build();
app.Run();
- HostBuilder
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000); // 指定端口号
});
webBuilder.UseStartup<Startup>(); //startup为启动类
});
应用区别
- WebApplicationBuilder 专门适用于web应用程序 便于配置UseRouting、UseEndpoints、Configure等中间件 或管道
- CreateHostBuilder 则用途广泛 可用于构建泛型主机、任何类型的应用程序(控制台应用程序、Windows服务等) 包含完整的主机配置选项 包括ConfigureWebHostDefaults、ConfigureServices等