【发布时间】:2019-08-31 17:20:27
【问题描述】:
我有一个 Azure Web 应用程序,在后端有多个 Web 作业。到目前为止,我一直在使用传统的 .Net 来创建这些网络作业。这些 Web 作业的核心方面之一是它们都可以访问 Azure 门户中定义的全局配置属性,如下所示:
我在我的传统 .Net 应用程序中引用这些设置,如下所示:
var appKey = ConfigurationManager.AppSettings["RingCentral_AppKey"];
我现在开始将我的网络作业转换为 .Net Core。但是,管理/检索此类应用设置的“最佳实践”似乎是在每个 Web 作业中的 appsettings.json 文件中:
我在我的 .Net Core 应用程序中引用我的设置,如下所示:
class Program
{
public static IConfiguration StaticConfig { get; set; }
static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddAzureStorage();
});
builder.ConfigureAppConfiguration((hostContext, config) =>
{
var conf = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build();
config.AddConfiguration(conf);
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
}
public class Functions
{
IConfiguration configuration;
public Functions(IConfiguration _configuration)
{
configuration = _configuration;
}
[NoAutomaticTrigger]
public void DoTrigger(ILogger logger, [Queue("messagestarterqueue")] ICollector<string> outputQueueMessage)
{
var appKey = configuration["RingCentral_AppKey"];
}
}
这一切都很好,但我必须在每个单独的项目中有一个单独的 appsettings.config 文件,每个项目都重复相同的设置。有没有办法为我的 .Net Core 网络作业“集中”这些设置?要么创建我的 Azure Web 应用程序可以引用的“全局”appsettings.config 文件吗?或者,每个 .Net Core 应用程序是否可以通过某种方式引用传统 .Net Web 作业当前使用的“旧式”应用程序设置?
【问题讨论】:
-
如果你想要集中配置,你可以查看 Azure App Config。它将提供与您现在所拥有的类似的体验,您可以将其与 .NET Core docs.microsoft.com/en-us/azure/azure-app-configuration/overview 一起使用
标签: azure asp.net-core configuration asp.net-core-2.0 azure-webjobs