ASP0009:不要使用含 WebApplicationBuilder.WebHost 的 Configure

規則識別碼 ASP0009
類別 使用方式
修正程式是中斷或非中斷 不中斷

原因

Configure 不能與 WebApplicationBuilder 上的 WebHost 屬性一起使用。

檔案描述

WebApplicationBuilder 不支援在使用 Configure 擴充方法建置之前設定 WebHost

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.Configure(webHostBuilder => {
    webHostBuilder.UseContentRootPath(Path.Combine(Directory.GetCurrentDirectory(), "myContentRoot"));
});

var app = builder.Build();

app.Run();

如何修正違規

若要修正此規則的違規問題,請直接在 WebHost 上設定 WebApplicationBuilder。 例如,而不是透過 Configure 設定內容根路徑。

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

app.Run();

直接在 WebApplicationBuilder 上設定內容根路徑。

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

app.Run();

隱藏警告的時機

不要隱藏此規則的警告。 設定錯誤的應用程式可能會導致在執行階段出現非預期的行為。