如何在 ASP.NET Core 3.0 中调用 UseWebRoot
How to call UseWebRoot in 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();
}
但是我今天不知道应该怎么做,因为没有这样的方法了。
对于 3.0,请改用 CreateDefaultBuilder
:
WebHost.CreateDefaultBuilder(args)
.UseWebRoot("")
ASP.NET Core 3.0 项目默认使用 Generic Host。在项目模板中,它是这样配置的:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder.UseStartup<Startup>();
});
在上面的示例中,webHostBuilder
是 IWebHostBuilder
, which still contains the UseWebRoot
扩展方法的实现。这意味着您可以像在 2.2 中那样调用它,但它只是移动到上面显示的传递给 ConfigureWebHostDefaults
的委托内部。这是完整的示例:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder.UseStartup<Startup>();
webHostBuilder.UseWebRoot(@".\WebSite\wwwroot\");
});
在 ASP.NET Core 2.2 中,我可以像这样设置 UseWebRoot()
:
public static void Main(string[] args)
{
CreateWebHostBuilder(args)
.UseUrls("http://*:5000")
.UseWebRoot(@".\WebSite\wwwroot\")
.Build()
.Run();
}
但是我今天不知道应该怎么做,因为没有这样的方法了。
对于 3.0,请改用 CreateDefaultBuilder
:
WebHost.CreateDefaultBuilder(args)
.UseWebRoot("")
ASP.NET Core 3.0 项目默认使用 Generic Host。在项目模板中,它是这样配置的:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder.UseStartup<Startup>();
});
在上面的示例中,webHostBuilder
是 IWebHostBuilder
, which still contains the UseWebRoot
扩展方法的实现。这意味着您可以像在 2.2 中那样调用它,但它只是移动到上面显示的传递给 ConfigureWebHostDefaults
的委托内部。这是完整的示例:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder.UseStartup<Startup>();
webHostBuilder.UseWebRoot(@".\WebSite\wwwroot\");
});