在.NET Core 2 Web API應用程序中,我可以使用appsettings.json
覆蓋配置urls
,但是在official docs中他們引入了額外文件「hosting.json」,爲什麼?增加複雜性的意義何在?因爲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
,並自動啓動網址),否則它不會。我猜它與CreateDefaultBuilder實現有關。
要從命令行重寫hosting.json或任何[name] .json網址,它通過.AddCommandLine(args)完成,在這方面沒有什麼特別的關於hosting.json。 –
我想重寫hosting.json。這就是文檔所說的。此外,它有道理hosting.json具有特定的主機配置其他像任何其他行話,如DB配置或日誌記錄或其他配置的詳細信息。 –
這是非常常見的設計,每個應用程序只有一個配置文件。當用戶計劃部署應用程序時,跳轉不同的配置文件以調整或驗證配置參數並不好。 –