无法在IIS下使用dotnet配置层次结构设置



对于我们的dotnet应用程序,我们有一个appsettings.json文件,使用分层设置,如:

"mysection":{"myproperty":"my secret value"}

此appsettings.json用于开发目的。

在生产模式下,我们使用Azure Keyvault(因为我们的应用程序正在Azure下运行(在密钥库中,秘密是用定义的

mysection--myproperty

但现在,我们需要在IIS下部署相同的Web服务。我们想在IIS设置下定义机密值,但mysection--mypropertymysection:myproperty不起作用。

你知道如何在IIS下设置这个层次结构吗?

使用环境变量时,子部分需要用双下划线__分隔。

来自文档:

:分隔符不适用于所有平台上的环境变量层次键。__,双下划线,是:

  • 所有平台都支持。例如,Bash不支持:分隔符,但支持__分隔符
  • 自动替换为:

这意味着您需要将mysection--myproperty更改为

mysection__myproperty

以便对其进行正确解析。

此外,您可以使用IConfigurationRoot.GetDebugView()来查看配置值的来源。

最新更新