В приложении .NET Core 2 Web API я мог переопределить конфигурацию urls
с помощью appsettings.json
, но в официальные документы они добавили дополнительный файл "hosting.json". Почему? Какой смысл добавлять сложности?
Код ниже полностью работает с использованием appsettings.json
:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) //see Side note below
.AddJsonFile("appsettings.json", optional: true)
.AddCommandLine(args)
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.UseStartup<Startup>()
.Build();
}
}
Содержимое appsettings.json:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"urls": "http://*:5005/"
}
Боковое примечание: комментарий .SetBasePath(Directory.GetCurrentDirectory())
сохранит режим отладки VS 2017 в рабочем состоянии (означает применение launchSettings.json
и URL-адрес автоматического запуска), в противном случае он не будет работать. Я предполагаю, что это связано с CreateDefaultBuilder реализация.