C# 什么';因为appsettings.json就足够了,所以hosting.json的意义是什么

C# 什么';因为appsettings.json就足够了,所以hosting.json的意义是什么,c#,configuration,.net-core,asp.net-core-webapi,asp.net-core-2.0,C#,Configuration,.net Core,Asp.net Core Webapi,Asp.net Core 2.0,在.NETCore2WebAPI应用程序中,我可以使用appsettings.json覆盖配置URL,但在他们引入的额外文件“hosting.json”中,为什么?增加复杂性有什么意义 下面的代码使用appsettings.json完全正常工作: 公共类程序 { 公共静态void Main(字符串[]args) { BuildWebHost(args.Run(); } 公共静态IWebHost BuildWebHost(字符串[]args) { var config=new Configurat

在.NETCore2WebAPI应用程序中,我可以使用
appsettings.json
覆盖配置
URL
,但在他们引入的额外文件“hosting.json”中,为什么?增加复杂性有什么意义

下面的代码使用appsettings.json完全正常工作:

公共类程序
{
公共静态void Main(字符串[]args)
{
BuildWebHost(args.Run();
}
公共静态IWebHost BuildWebHost(字符串[]args)
{
var config=new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())//参见下面的旁注
.AddJsonFile(“appsettings.json”,可选:true)
.AddCommandLine(args)
.Build();
返回WebHost.CreateDefaultBuilder(args)
.UseConfiguration(配置)
.UseStartup()
.Build();
}
}
appsettings.json内容:

旁注:
注释
.SetBasePath(Directory.GetCurrentDirectory())
将使VS 2017调试模式保持运行(意味着应用
launchSettings.json
和自动启动url),否则它将不会运行。我想它与实现有关。

我认为,hosting.json是一个专门用于asp.net核心应用程序托管的配置文件。(如果您对托管有更多了解)

WebHostBuilder直接将其键映射到hosting.json文件,并且它没有像在正常配置设置中那样加载配置部分的功能

根据你文章中的链接

使用配置来配置主机。在下面的示例中, 主机配置可以选择在hosting.json文件中指定。任何 从hosting.json文件加载的配置可能会被 命令行参数

如果只显式使用ushosting.json,那么可以使用dotnet命令修改WebHostBuilder配置

比如说

dotnet运行--URL“http://*:8080”

这将覆盖hostings.json文件中的URL

希望这能提供一些想法

PC:hosting.json可以像myappsettings.json一样重命名它可以 具有配置和Web主机生成器配置


要从命令行覆盖hosting.json或任何[name].json URL,由.AddCommandLine(args)完成,在这方面hosting.json没有什么特别之处。我认为要覆盖hosting.json。文件上就是这么说的。另外,让hosting.json具有特定的主机配置也很有意义,就像其他行话一样,比如db config或logging或其他配置详细信息。当用户计划部署应用程序时,在不同的配置文件之间跳转以调整或验证配置参数是不好的。@JawadAlShaikh是的,我同意。
{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  },
  "urls": "http://*:5005/"
}