【问题标题】:Azure API doesnt use connection string from configuration, but local oneAzure API 不使用配置中的连接字符串,而是使用本地连接字符串
【发布时间】:2021-09-23 09:39:34
【问题描述】:

我在 azure api 配置中有同名的连接字符串,但是当我去 api 时,大摇大摆地告诉我 - System.PlatformNotSupportedException: LocalDB is not supported on this platform. 返回 500 状态。 这就是我从 api 获取连接字符串的方式:

private string _connectionString = string.Empty;

        public string GetConnectionString(string name)
        {
            var configurationBuilder = new ConfigurationBuilder();
            var path = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");
            configurationBuilder.AddJsonFile(path, false);

            var root = configurationBuilder.Build();
            _connectionString = root.GetSection("ConnectionStrings").GetSection(name).Value;
            var appSetting = root.GetSection("ApplicationSettings");

            return _connectionString;
        }

API 项目在 .net 5 上

【问题讨论】:

    标签: azure asp.net-web-api connection-string azure-api-management


    【解决方案1】:

    这是因为您仅从文件构建配置,而您需要添加 AddEnvironmentVariables 以便它将添加来自 Azure 应用服务配置的属性

    试试这个:

      public string GetConnectionString(string name)
            {
                var path = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");
                var root = new ConfigurationBuilder()
                    .AddJsonFile(path, false)
                    .AddEnvironmentVariables()
                    .Build();
    
                _connectionString = root.GetSection("ConnectionStrings").GetSection(name).Value;
                var appSetting = root.GetSection("ApplicationSettings");
    
                return _connectionString;
            }
    

    由于它在库中,您需要添加包含 AddEnvironmentVariables 扩展名的包 Microsoft.Extensions.Configuration.EnvironmentVariables

    另一种方法是在您的项目中添加 FrameworkReference,但这会带来很多您可能不需要的 asp.net 核心内容

      <ItemGroup>
        <FrameworkReference Include="Microsoft.AspNetCore.App" />
      </ItemGroup>
    

    【讨论】:

    • 它说 IConfigurationBuilder 不包含AddEnvironmentVariables的定义
    • 尝试使用 Microsoft.Extensions.Configuration 添加命名空间;
    • @komnen 是库或 webapi 项目中的代码吗?
    • 它在图书馆编辑:哦,这可能是个问题吗?我还没有发布我的库
    • @komnen 完成。询问您是否还有其他问题
    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多