gpt4 book ai didi

c# - 提供具有复杂设置配置的 Azure Web 应用程序

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

我在 ASP.NET Core Web 应用程序中使用 appsettings.json 为我的应用程序提供配置值。有些配置比“名称/值对”更复杂,例如 Serilog 配置:

"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"System": "Warning",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.AspNetCore.Authentication": "Information"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "C:/Development/logs/log-auth.txt",
"fileSizeLimitBytes": 1000000,
"rollOnFileSizeLimit": true,
"shared": true,
"flushToDiskInterval": 1,
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext} | {Message:lj}{NewLine}{Exception}"
}
}
]
}

我想知道的是,如何为我的 Azure Web 应用程序提供此配置?我知道我可以创建一个 appsettings.Production.json 文件并在发布时推送该文件,但是通过发布部署设置有什么意义呢?它们也可能是硬编码的。设置文件的要点是您应该能够更改设置并重新启动应用程序,更改其行为,而无需重新部署代码。

我唯一能看到的 Azure 提供的是门户中的“设置 | 配置”部分,但这些设置只允许是简单的名称/值对。我的 Serilog 配置在那里无效。那么我怎样才能提供任何类型的高级配置呢?

最佳答案

正如蒂亚戈已经说过的,您可以使用 : 添加更多而不是简单的键/值配置。但是,如果您必须处理更大的应用程序配置,我建议使用 Azure App Configuration .

在 Linux 托管的 Web 应用程序上,Azure 不允许您在配置设置中插入冒号,可能是因为 Linux 环境变量名称中不允许这样做。使用双下划线 (__) 代替冒号。

另请参阅:Import or export configuration data

关于c# - 提供具有复杂设置配置的 Azure Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60530080/

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