代码之家  ›  专栏  ›  技术社区  ›  Aidan

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

  •  7
  • Aidan  · 技术社区  · 7 年前

    我的Azure Function应用程序定义了ConnectionString。我想从dotnet standard 2.0中编写的C#函数中检索它。我已尝试添加 System.Configuration.ConfigurationManager 到项目。json和使用

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

    但我发现了错误

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

    如何访问连接字符串?

    2 回复  |  直到 7 年前
        1
  •  15
  •   Spikatrix    6 年前

    ConfigurationManager在Azure Functions v2中不可用。NET标准项目。Azure功能v2现在使用 ASPNET Core Configuration .

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

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

      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和ConnectionString的说明。

        2
  •  3
  •   Tom Sun    7 年前

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

    根据上述例外情况。似乎需要添加参考系。dotnet standard 2.0类库中的配置。我在本地测试,它在我这边正常工作。

    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

    在azure门户上测试它。

    enter image description here