azure - 如何在 dotnet 应用程序中使用 Azure 应用服务的应用程序设置?

标签 azure .net-core azure-web-app-service appsettings

自从我开始使用 AzureApp Service 资源以来,一直有一个问题我希望获得有关应用设置配置变量的明确答案。

查看文档 here ,我们可以看到以下内容:

“在应用服务中,您可以在应用代码之外设置应用设置和连接字符串。然后您可以使用标准 ASP.NET 模式在任何类中访问它们:

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

如果您在应用服务和 web.config 中配置具有相同名称的应用设置,则应用服务值优先于 web.config 值。本地 web.config 值允许您在本地调试应用程序,但应用程序服务值允许您使用生产设置在产品中运行应用程序。连接字符串的工作方式相同。这样,您就可以将应用程序的 secret 保存在代码存储库之外,并在不更改代码的情况下访问适当的值。”

这是否意味着 ConfigurationManager 是负责使用应用服务配置变量(如果存在)的神奇功能的类?

如果我们使用例如

    var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile($"appsettings.json", true, true)

由于 ConfigurationBuilder 不使用环境变量,在这种情况下,我认为应用程序服务变量将不再起作用,对吗?

在上面的示例中,它是 dotnet core,我查看了文档 here而且配置的方式好像有点不一样。我想知道配置生成器是否需要 .AddEnvironmentVariables();

查看文档,很难理解是否是应用程序被配置为添加环境​​变量的问题,或者应用程序服务是否能够在应用程序配置中注入(inject)应用程序设置。如果我们看here 。我们看到这个:

enter image description here

如何处理带有该前缀的变量?

例如,配置应用程序设置中的变量带或不带 APPSETTING_ 前缀是否有所不同?

  {
    "name": "Test",
    "value": "123",
    "slotSetting": false
  }

  {
    "name": "APPSETTING_Test",
    "value": "123",
    "slotSetting": false
  }

最佳答案

是的,如果您 .AddEnvironmentVariables(),AppService 中配置的 AppSettings 将包含在您的构建器中,但最好使用某些前缀,例如 ASPNETCORE_

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-6.0#default-host-configuration-sources

关于azure - 如何在 dotnet 应用程序中使用 Azure 应用服务的应用程序设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72755233/

相关文章:

Azure AD 阻止添加 HTTP 回复 URL

c# - 如何配置自包含的单文件程序?

c# - 如何在.Net core 2.0 控制台应用程序中将 AutoMapper 添加到 DI

asp.net - Azure 网站中的 Process.Start

MP4 的 Azure Web 应用程序配置

asp.net-mvc - VS 2015、C# 6、MVC5、Roslyn — Azure Web 应用程序上出现 502 网关错误

database - Azure SQL 如何检查分区逻辑

c# - .NET Core AddHttpClient 动态配置

azure - 使用 Azure Devops 将文件添加到构建输出的最佳方法是什么

azure - EpiServer内容同步