Share via


ASP0008:請勿使用 ConfigureWebHost 搭配 WebApplicationBuilder.Host

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

原因

ConfigureWebHost 無法搭配 WebApplicationBuilder 上的 Host 屬性使用。

檔案描述

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

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

app.Run();

如何修正違規

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

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

app.Run();

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

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

app.Run();

隱藏警告的時機

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