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

问题描述 投票:5回答:2

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

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

但我得到了错误

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

如何访问连接字符串?

.net-core connection-string azure-functions sqlconnection .net-standard
2个回答
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. 然后,您可以使用此变量来访问应用程序设置。

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


3
投票

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

根据提到的例外情况。您似乎需要在dot net standard 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

© www.soinside.com 2019 - 2024. All rights reserved.