如何使用 dotnet 标准访问 Azure Function App ConnectionString

How To Access Azure Function App ConnectionString Using dotnet Standard

我的 Azure Function App 定义了一个 ConnectionString。我想从用 dotnet 标准 2.0 编写的 C# 函数中检索它。我尝试将 System.Configuration.ConfigurationManager 添加到 project.json 并使用

var str = ConfigurationManager.ConnectionStrings["my string"].ConnectionString;

但我收到错误

run.csx(24,15): error CS0103: The name 'ConfigurationManager' does not exist in the current context

如何访问连接字符串?

run.csx(24,15): error CS0103: The name 'ConfigurationManager' does not exist in the current context

根据上述说明。看来您需要在 dotnet 标准 2.0 class 库中添加引用 System.Configuration。我在本地测试它在我这边正常工作。

public class TestGetConnectionString
{

    public string ConnectionString;

    public TestGetConnectionString()
    { 

        var str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        ConnectionString = str;
    }


}

更新:

对于您的情况,您还可以在 Azure 函数应用程序设置中添加连接字符串。详情可参考截图。我们可以通过以下代码轻松访问它。

 var connectionstring = Environment.GetEnvironmentVariable("ConnectionString");

在 Azure 门户上进行测试。

ConfigurationManager 在 Azure Functions v2 .NET Standard 项目中不可用。 Azure FUnction v2 现在使用 ASPNET Core Configuration.

您可以按照这些说明进行操作。

  1. 在您的 运行 方法中添加第三个参数。

    public static async Task<HttpResponseMessage> Run(InputMessage req, TraceWriter log, ExecutionContext context)
    
  2. 在运行方法中,添加如下代码。

    var config = new ConfigurationBuilder()
        .SetBasePath(context.FunctionAppDirectory)
        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();
    
  3. 然后您可以使用此变量访问应用程序设置。

您可以在 this blog 中查看有关如何在 v2 中使用 AppSettings 和 ConnectionStrings 的说明。