Nguon: Microsoft Learn · .NET 8.0

ASP0008: Không sử dụng ConfigureWebHost với WebApplicationBuilder.Host

Nguồn: ASP0008: Do not use ConfigureWebHost with WebApplicationBuilder.Host

-Giá trị
Rule ID (Mã quy tắc)ASP0008
Category (Danh mục)Usage (Sử dụng)
Fix is breaking or non-breaking (Sửa có gây breaking change không)Non-breaking (Không gây breaking change)

Nguyên nhân

ConfigureWebHost không thể được sử dụng với thuộc tính Host trên WebApplicationBuilder.

Mô tả quy tắc

WebApplicationBuilder không hỗ trợ cấu hình WebHost trước khi build (xây dựng) bằng cách sử dụng extension method (phương thức mở rộng) ConfigureWebHost.

csharp
var builder = WebApplication.CreateBuilder(args);

builder.Host.ConfigureWebHost(webHostBuilder => {
    webHostBuilder.UseContentRoot(Path.Combine(Directory.GetCurrentDirectory(), "myContentRoot"));
});

var app = builder.Build();

app.Run();

Cách khắc phục vi phạm

Để khắc phục vi phạm quy tắc này, hãy cấu hình WebHost trực tiếp trên WebApplicationBuilder. Ví dụ, thay vì đặt đường dẫn content root (thư mục gốc nội dung) thông qua ConfigureWebHost:

csharp
var builder = WebApplication.CreateBuilder(args);

builder.Host.ConfigureWebHost(webHostBuilder =>
{
    webHostBuilder.UseContentRoot(Path.Combine(Directory.GetCurrentDirectory(), "myContentRoot"));
});

var app = builder.Build();

app.Run();

Hãy cấu hình đường dẫn content root trực tiếp trên WebApplicationBuilder.WebHost:

csharp
var builder = WebApplication.CreateBuilder(args);

builder.WebHost.UseContentRoot(Path.Combine(Directory.GetCurrentDirectory(), "foobar"));

var app = builder.Build();

app.Run();

Khi nào nên bỏ qua cảnh báo

Không nên bỏ qua cảnh báo từ quy tắc này. Ứng dụng được cấu hình sai có thể dẫn đến hành vi không mong muốn khi chạy.