Azure API不使用来自配置的连接字符串,而是使用本地连接字符串



我在azure api配置中有同名的连接字符串,但当我转到api时,swagger,它告诉我-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 上

这是因为您仅从文件构建配置,而您需要添加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>

最新更新