c# - 使用 VS2017 for Mac 进行调试时,Azure 函数无法读取/访问 local.settings.json

标签 c# azure .net-core azure-functions

使用 VS2017 for Mac 在本地调试 Azure Function 时尝试从 local.settings.json 配置文件中读取时返回空/空值...扫描互联网后,我无法确定这是否是已知的问题或是否有解决方法。这就是我访问配置设置的方式:

ConfigurationManager.ConnectionStrings["connName"].ConnectionString

如果在 Windows 计算机上调试 Function 应用程序(相同的 git 代码库),则效果很好

最佳答案

运行时 2.x(.net core) 上运行的 Azure function v2 不再支持 ConfigurationManager。请参阅Azure Team's reply on github .

当我在 Windows 上调试 v2 函数时,抛出了 System.Configuration.ConfigurationErrorsException。正如您所发现的,v1 仍然运行良好。

正如 @mariocatch 所说,尝试读取环境变量。

两个选项供您引用。

  1. 直接读取环境变量

    string connectionString = Environment.GetEnvironmentVariable("ConnectionStrings:connName");
    
  2. ExecutionContext 上下文 添加到您的函数方法参数并读取本地设置。

    [FunctionName("FunctionName")]
    public static void Run(...,ExecutionContext context)
    {
        var config = new ConfigurationBuilder()
            .SetBasePath(context.FunctionAppDirectory)
            .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
        string connectionString = config.GetConnectionString("connName");
        .....
    }
    

关于c# - 使用 VS2017 for Mac 进行调试时,Azure 函数无法读取/访问 local.settings.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50144132/

相关文章:

azure - 如何在 Azure Functions Premium 中配置预热实例?

asp.net - 部署到 Azure 后出现编译错误

c# - 在 Docker 中使用 EF Core 对 SQLite DB 的每个查询都非常慢,除非有对 OpenConnection 的显式调用

c# - 处理 session 变量超时

c# - 为 LINQ 上下文禁用所有延迟加载或强制预加载

azure - 为什么我的消息总是传送到 Azure 服务总线中的死信队列?

dependency-injection - 没有 ASP.NET Core 的 .NET Core 中的 DI

.net-core - TFS 构建代理在 : .Net Core + VS 2017 + 私有(private) TFS 源的 Nuget 还原上失败

c# - 带有(一点点)Unity 3D 的 iOS 项目?

c# - 将数据库表转换为 C# 类的工具