如何在 ASP.NET Core 3.0 中调用 UseWebRoot

Сер*_*гей 7 c# asp.net-core asp.net-core-3.0

在 ASP.NET Core 2.2 中,我可以设置UseWebRoot()为:

public static void Main(string[] args)
{
   CreateWebHostBuilder(args)
     .UseUrls("http://*:5000")
     .UseWebRoot(@".\WebSite\wwwroot\")
     .Build()
     .Run();
}
Run Code Online (Sandbox Code Playgroud)

但是我今天不知道该怎么做,因为已经没有这样的方法了。

Kir*_*kin 7

ASP.NET Core 3.0 项目默认使用Generic Host。在项目模板中,它是这样配置的:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webHostBuilder =>
        {
            webHostBuilder.UseStartup<Startup>();
        });
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,webHostBuilder是 的一个实现IWebHostBuilder,它仍然包含UseWebRoot扩展方法。这意味着您可以像在 2.2 中那样调用它,但它只是移动到传递给ConfigureWebHostDefaults 上面所示的委托内部。这是完整的示例:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webHostBuilder =>
        {
            webHostBuilder.UseStartup<Startup>();
            webHostBuilder.UseWebRoot(@".\WebSite\wwwroot\");
        });
Run Code Online (Sandbox Code Playgroud)