2016-05-03 3 views
1

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

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

ответ

4

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

Смежные вопросы