Диспетчер конфигурации не может получить строку подключения в ASP.net 5

У меня есть веб-приложение ASP.NET 5, которое использует библиотеку классов .NET 4.6. В какой-то момент в библиотеке классов есть вызов для получения строки подключения из web.config:

ConfigurationManager.ConnectionStrings["AppDataConnectionString"].ConnectionString

(ПРИМЕЧАНИЕ: Я НЕ МОГУ ИЗМЕНИТЬ ЭТОТ КОД.)

Эта библиотека классов использовалась в старых приложениях веб-форм, где AppDataConnectionString была определена в их web.configs. Теперь я пытаюсь использовать библиотеку классов в своем веб-приложении ASP.NET 5, но приведенный выше код создает исключение нулевой ссылки.

Вот раздел строк подключения в моем web.config в проекте ASP.NET 5:

<connectionStrings>    
    <add name="AppDataConnectionString" connectionString="server=xxxxxx;database=yyyyy;Trusted_Connection=yes;" providerName="System.Data.SqlClient" />
</connectionStrings>

Я также попытался добавить его в файл appsettings.json следующим образом:

{
  "ConnectionStrings": {
    "AppDataConnectionString": {
      "ConnectionString": "server=xxxxx;database=yyyyy;Trusted_Connection=yes;"
    }
  }
}

Вот где я загружаю конфигурацию в Startup:

public IConfiguration _Configuration { get; set; }

public Startup()
{
    _Configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
}

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton(provider => _Configuration);             
}

public void Configure(IApplicationBuilder app)
{
    // Call some code from the class library that tries to get that connection string.
}

Мне кажется, что менеджер конфигурации просто не может найти, где находится строка подключения. Правильно ли структурирован мой файл web.config или appsettings.json, чтобы он мог его найти?


person user2320861    schedule 03.05.2016    source источник


Ответы (1)


Оказывается, любая конфигурация, которая ранее хранилась в файле web.config в предыдущих версиях ASP.net, теперь должна храниться в файле app.config в том же каталоге, что и project.json в ASP.net 5.0. Теперь мои импортированные библиотеки классов могут получать свои строки подключения, и все работает.

person user2320861    schedule 08.05.2016