配置管理器无法在ASP.net 5

时间:2016-05-03 21:10:24

标签: c# json connection-string asp.net5

我有一个ASP.NET 5 Web应用程序,它已经引入了.NET 4.6类库。在类库中的某个时刻,有一个从web.config获取连接字符串的调用:

ConfigurationManager.ConnectionStrings["AppDataConnectionString"].ConnectionString

(注意:我无法更改此代码。)

此类库已用于旧的Web表单应用程序,其中AppDataConnectionString在其web.configs中定义。现在我正在尝试在我的ASP.NET 5 Web应用程序中使用类库,但上面的代码抛出了一个空引用异常。

以下是ASP.NET 5项目中web.config中的连接字符串部分:

<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以便找到它?

1 个答案:

答案 0 :(得分:4)

事实证明,先前存储在以前版本的ASP.net中的web.config文件中的任何配置现在都需要存储在与ASP.net 5.0中的project.json相同的目录中的app.config文件中。现在我导入的类库可以获取它们的连接字符串,一切正常。