#azure #asp.net-web-api #connection-string #azure-api-management
Вопрос:
У меня есть строка подключения в конфигурации api azure с тем же именем, но когда я захожу в 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
Ответ №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;
}
Так как он находится в библиотеке, вам нужно добавить пакет Microsoft.Extensions.Configuration.EnvironmentVariables
, содержащий AddEnvironmentVariables
расширение.
Другой способ сделать это-добавить ссылку на фреймворк в ваш проект, но это принесет много asp.net основные вещи, которые вам, вероятно, не нужны
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Комментарии:
1. В нем говорится, что IConfigurationBuilder не содержит определения для
AddEnvironmentVariables
2. попробуйте добавить пространство имен с помощью Microsoft. Расширения. Конфигурация;
3. @komnen это код в проекте librarry или webapi?
4. Это в библиотеке правка: О, может ли это быть проблемой? Я еще не опубликовал свою библиотеку
5. @komnen готово. Спрашивайте, есть ли у вас еще какие-либо вопросы