ASP0008:不要将 ConfigureWebHost 与 WebApplicationBuilder.Host 配合使用

规则 ID 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();

何时禁止显示警告

不禁止显示此规则发出的警告。 配置错误的应用程序可能会导致在运行时出现意外行为。