如何使用dotnet Standard访问Azure功能应用程序ConnectionString

时间:2018-01-01 08:03:34

标签: .net-core connection-string azure-functions sqlconnection .net-standard

我的Azure功能应用程序已定义ConnectionString。我想从用dotnet标准2.0编写的C#函数中检索它。我尝试将System.Configuration.ConfigurationManager添加到project.json并使用

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

但我收到了错误

  

run.csx(24,15):错误CS0103:当前上下文中不存在名称“ConfigurationManager”

如何访问连接字符串?

2 个答案:

答案 0 :(得分:10)

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

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

  1. 在run方法中添加第3个参数。

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

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

  4. 有关如何在v2中使用AppSettings和ConnectionStrings的说明,您可以看到this blog

答案 1 :(得分:3)

  

run.csx(24,15):错误CS0103:当前上下文中不存在名称“ConfigurationManager”

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

enter image description here

public class TestGetConnectionString
{

    public string ConnectionString;

    public TestGetConnectionString()
    { 

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


}

<强>更新

在您的情况下,您还可以在Azure功能appsetting中添加连接字符串。您可以参考屏幕截图的详细信息。我们可以通过以下代码轻松访问它。

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

enter image description here

enter image description here

在天蓝色的门户网站上进行测试。

enter image description here