配置管理器无法在 ASP.net 5 中获取连接字符串
Configuration manager can't get connection string in ASP.net 5
我有一个 ASP.NET 5 Web 应用程序,它已引入 .NET 4.6 class 库。在 class 库中的某个时刻,有一个从 web.config:
获取连接字符串的调用
ConfigurationManager.ConnectionStrings["AppDataConnectionString"].ConnectionString
(注意:我无法更改此代码。)
此 class 库已用于旧的 Web 表单应用程序,其中 AppDataConnectionString 是在其 web.config 中定义的。现在我正尝试在我的 ASP.NET 5 网络应用程序中使用 class 库,但是上面的代码抛出了空引用异常。
这是我 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;"
}
}
}
这是我在启动时加载配置的位置:
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 的结构是否正确,以便它找到它?
事实证明,以前在 ASP.net 版本中存储在 web.config 文件中的任何配置现在都需要存储在与以下版本相同目录中的 app.config 文件中project.json 在 ASP.net 5.0 中。现在我导入的 class 库可以获取它们的连接字符串并且一切正常。
我有一个 ASP.NET 5 Web 应用程序,它已引入 .NET 4.6 class 库。在 class 库中的某个时刻,有一个从 web.config:
获取连接字符串的调用ConfigurationManager.ConnectionStrings["AppDataConnectionString"].ConnectionString
(注意:我无法更改此代码。)
此 class 库已用于旧的 Web 表单应用程序,其中 AppDataConnectionString 是在其 web.config 中定义的。现在我正尝试在我的 ASP.NET 5 网络应用程序中使用 class 库,但是上面的代码抛出了空引用异常。
这是我 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;"
}
}
}
这是我在启动时加载配置的位置:
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 的结构是否正确,以便它找到它?
事实证明,以前在 ASP.net 版本中存储在 web.config 文件中的任何配置现在都需要存储在与以下版本相同目录中的 app.config 文件中project.json 在 ASP.net 5.0 中。现在我导入的 class 库可以获取它们的连接字符串并且一切正常。