首页 > 解决方案 > 如何在 ASP.NET Core 3.0 中调用 UseWebRoot

问题描述

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

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

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

标签: c#asp.net-coreasp.net-core-3.0

解决方案


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

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

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

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

推荐阅读