Reputation: 126
I have connection string in azure api configuration with the same name, but when i go to api, swagger, it tells me - System.PlatformNotSupportedException: LocalDB is not supported on this platform.
returning 500 status.
this is how i get connection string from 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 project is on .net 5
Upvotes: 1
Views: 250
Reputation: 19514
This is because you are building you configuration from file only, while you need to add AddEnvironmentVariables
so it will add properties from Azure App Service Configuration
Try this:
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;
}
Since its in library you need add package Microsoft.Extensions.Configuration.EnvironmentVariables
which contains AddEnvironmentVariables
extension.
The other way to do it would be to add FrameworkReference in your project but that would bring lots of asp.net core stuff you probably dont need
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Upvotes: 1