m1n*_*keh 4 c# json azure azure-functions
在运行或调试测试时,我似乎无法从azure函数中的此文件中读取任何内容,但是在本地调试整个应用程序时,它可以正常工作。.有人能解释为什么吗?
{
"IsEncrypted": false,
"Values": {
"xyz": 123
}
}
var res = ConfigurationManager.AppSettings.Get("xyz");
Run Code Online (Sandbox Code Playgroud)
ty ..
我可疑的是,这是由于从另一个项目(测试项目)启动了“调试”,而local.settings.json没有与正在测试的项目捆绑在一起吗?
我以编程方式添加了设置,以最大程度地减少敏感数据到达版本控制的机会。
class LocalSettings
{
public bool IsEncrypted { get; set; }
public Dictionary<string, string> Values { get; set; }
}
public static void SetupEnvironment()
{
string basePath = Path.GetFullPath(@"..\..\..\MyAzureFunc");
var settings = JsonConvert.DeserializeObject<LocalSettings>(
File.ReadAllText(basePath + "\\local.settings.json"));
foreach (var setting in settings.Values)
{
Environment.SetEnvironmentVariable(setting.Key, setting.Value);
}
}
Run Code Online (Sandbox Code Playgroud)
你的怀疑是正确的。实际上只有 Azure Functions 运行时主机知道从该文件中读取设置并将它们合并到整个 AppSettings 中。在测试项目中运行时,不涉及 Azure Functions 运行时主机,因此您无法访问它们。
解决此问题的最简单方法是将所有相同的设置键/值反映到app.config标准<appSettings>部分下的测试项目文件中。
| 归档时间: |
|
| 查看次数: |
1887 次 |
| 最近记录: |