【问题标题】:Overriding appsettings.json values from Azure App settings覆盖 Azure 应用设置中的 appsettings.json 值
【发布时间】:2021-04-01 08:45:27
【问题描述】:

我有一组如下的应用设置值。我们在 Windows 应用服务上

"MainDomains": {
"Domains": [
  {
    "Id": "123456",        
    "Domain": "Technical",       
    "PolicyUrl": "https://www.mytechdomain.net",
    "LearningPoint": "https://www.mytechdomain.net",
    "Hostnames": [
      "https://localhost:4567",
      "http://localhost:34565",          
      "https://mytechdomain.latestlearn.com"
    ],
    "UsePreviewContent": true,
    "IsDefault": true,
    "OriginEmail": "info@techdomain.net",
    "mytechname": "Techdomain"
  }
]

}

如何在配置下的 Azure 应用设置中正确设置这些值。我已经尝试过像 property1:property2:0 --> xxxvalue。然而,这似乎不起作用。我猜可能是我在另一个数组中有一个数组。其中第一个数组是 MainDomains,而 MainDomains 数组中的另一个数组是 Domains。

【问题讨论】:

  • 请尽量使用__而不是:作为分隔符。类似MainDomains__Domains__Id
  • 我错过了,我们在 Windows 上。所以我猜 __ 适用于 linux。不过让我试试
  • __ 是平台安全的。根据文档: 应该可以在 Windows 上运行。您能否编辑您的问题并举一个实际示例说明您尝试设置的内容不起作用?
  • 是的 Gaurav,我编辑了这个主题。在这里,我试图在 App 设置中进行设置,例如如下所示。 1. MainDomains:Domains:Id --> 123456 2. MainDomains:Domains:Hostnames:0 --> localhost:4567我在这里找到了一些信息:stackoverflow.com/questions/34063167/…
  • 我不确定在这种情况下如何实现这一目标。上面的一个例子就是我正在寻找的。我需要一个示例来设置 (MainDomains:Domains:Id --> 123456) 和 (MainDomains:Domains:Hostnames:0 --> localhost:4567)

标签: asp.net azure azure-web-app-service


【解决方案1】:

您应该在appsettings.json 中使用相同的分隔格式设置应用设置名称。但就像 Gaurav Mantri 所说,在门户上使用双下划线 __ 而不是 :

参考Configuration keys and values的描述:

在环境变量中,冒号分隔符可能不适用于所有 平台。所有平台都支持双下划线__ 会自动转换成冒号:

您也可以查看official document about how to set App Settings

【讨论】:

  • 我在某处读到 __ 适用于 linux 并且 : 适用于 Windows 应用程序服务。还是让我试试吧。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
相关资源
最近更新 更多