На 2.2.0 у меня есть следующее для создания WebHostBuilder. Затем я вызываю .Build().Run()
на нем
public IWebHostBuilder CreateWebHostBuilder(CommandLineOptions commandLineOptions, Type startupType, IConfiguration configuration, ILogger logger)
{
if (builder == null)
{
builder = WebHost.CreateDefaultBuilder(commandLineOptions?.Args)
.ConfigureAppConfiguration(configBuilder =>
{
configBuilder.Sources.Clear();
configBuilder.AddConfiguration(configuration);
})
.UseEnvironment(configuration.GetValue<string>("Environment"))
.UseStartup(startupType)
.UseUrls(configuration.GetValue<string>("HostUrl")) //"http://*:8000/"
.UseSerilog(logger);
}
return builder;
}
После обновления до 3.1.3 все равно работает. Затем я изменил на нижеприведенное на основании миграции do c
public IHostBuilder CreateHostBuilder(CommandLineOptions commandLineOptions, Type startupType, IConfiguration configuration, ILogger logger)
{
if (builder == null)
{
builder = Host.CreateDefaultBuilder(commandLineOptions?.Args)
.ConfigureAppConfiguration(configBuilder =>
{
configBuilder.Sources.Clear();
configBuilder.AddConfiguration(configuration);
})
.UseEnvironment(configuration.GetValue<string>("Environment"))
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup(startupType);
webBuilder.UseUrls(configuration.GetValue<string>("HostUrl")); //"http://*:8000/"
})
.UseSerilog(logger);
}
return builder;
}
Однако теперь, независимо от того, что я делаю, он прослушивает порты по умолчанию http://localhost: 5000 и https://localhost: 5001 . У меня нет файла hostsettings. json, launchSettings. json также не имеет ничего установленного, в моих переменных окружения нет настроек. Я запустил из командной строки указание нужного URL, но ничего не работает.
РЕДАКТИРОВАТЬ: Благодаря предложению Мартина Штауфчика минимизировать конфигурацию, я заметил, что изменение ConfigureAppConfiguration
на ConfigureHostConfiguration
решено проблема. Я также заметил, что если я оставлю это как ConfigureAppConfiguration
и уберу строку configBuilder.Sources.Clear();
, это тоже сработает.
Я посмотрел разницу между ними, но я все еще не понимаю, что это такое. здесь происходит.