gpt4 book ai didi

Azure应用程序配置: Double underscore not equivalent to colon when trying to denote nesting

转载 作者:行者123 更新时间:2023-12-03 06:06:41 26 4
gpt4 key购买 nike

在 Azure 应用程序配置中,我将我的设置命名为:“Section1__SubSection1__MySetting”。当尝试将配置绑定(bind)到 .NET 6 应用程序中相应的 Options 类时,它无法正确映射(null)。如果我将“__”更改为“:”,它就可以正常工作。

我试图弄清楚为什么/如何使用双下划线来表示嵌套,因为通常建议使用“__”以获得更通用的支持。如果我在 Azure 应用程序配置 key 中使用“:”,如果我在 Linux 计算机上运行我的应用程序,它仍然可以工作吗?

有人可以解释一下这一切吗?

最佳答案

Written with [StackEdit](>Double underscore not equivalent to colon when trying to denote nesting

是的,表示嵌套配置因托管环境 (Windows/Linux) 而异。

如果您想在 Windows 应用程序中设置嵌套配置,则需要在嵌套键名称后面提及 : 符号(您已经尝试过)。

您可以看到MSDoc中提到了同样的内容。

In a default Linux app service or a custom Linux container, any nested JSON key structure in the app setting name like ApplicationInsights:InstrumentationKey needs to be configured in App Service as ApplicationInsights__InstrumentationKey for the key name. In other words, any : should be replaced by __ (double underscore).

  • 从上面的文档可以清楚地看出,要在Linux环境中绑定(bind)嵌套配置,我们需要使用__双下划线。

检查以下解决方法:

enter image description here

并尝试检索值。

Program.cs 中:

string myconn = builder.Configuration.GetConnectionString("AppConfig");
//string myconn = builder.Configuration.GetSection("AppConfig").Value;
builder.Configuration.AddAzureAppConfiguration(myconn);

Index.cshtml 中:

<h4>With Semicolon - @myconfig["Test:Settings:SemiColon"]</h4>
<h4>With UnderScore - @myconfig["Test__Settings__UnderScore"]</h4>

本地输出:

enter image description here

我已将应用部署到 Azure Linux 应用服务

部署的应用输出:

enter image description here

:__ 都为我在 Linux 应用程序环境 中使用 Azure 应用程序配置 部署了应用程序.

当我尝试使用 Azure 应用程序设置时,

本地 appsettings.json 文件:

"Section1": {
"SubSection1": {
"MySetting": "Value from Local"
}
}
  • 最初我使用 : 设置配置并尝试检索该值。

本地输出: enter image description here

  • :在这里工作。

  • 我已将应用部署到 Azure Linux 应用服务

  • 要使用 Azure 应用程序设置覆盖该值,我已将值设置如下(使用 :)。

enter image description here

  • 添加设置时您会看到以下错误。

enter image description here

  • 我尝试过使用 __,它允许我添加。

enter image description here

部署的应用输出:

enter image description here

If I use ":" in my Azure App Configuration keys, would it still work if I run my app on a Linux machine?

  • 是的,: 适用于 Azure 应用配置 中的 Azure Linux 应用服务

  • 而只有 __ 在使用 Azure 应用设置Azure Linux 上工作。

关于Azure应用程序配置: Double underscore not equivalent to colon when trying to denote nesting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77234673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com