Как вызвать UseWebRoot в ASP.Core 3.0 - PullRequest
1 голос
/ 11 октября 2019

Я мог бы установить UseWebRoot ранее в ASP.NET Core 2.2:

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

Но я не знаю, как мне это сделать сегодня, потому что такого метода больше нет.

Ответы [ 2 ]

1 голос
/ 11 октября 2019

В проектах 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\");
        });
0 голосов
/ 11 октября 2019

Для 3.0 используйте CreateDefaultBuilder вместо:

WebHost.CreateDefaultBuilder(args)
     .UseWebRoot("")
...