У меня есть веб-приложение 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, чтобы он мог его найти?