You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Web API引用类库时连接字符串获取异常问题排查

问题根源

ConfigurationManager是.NET Framework专属的配置读取组件,仅会读取传统web.config/app.config文件中的配置项,完全不识别ASP.NET Core的appsettings.json。你在ASP.NET Core项目里配置的连接字符串无法被类库的ConfigurationManager读取,所以它返回了默认的SQL Express本地连接字符串。

解决方案

方案一:重构类库适配ASP.NET Core(推荐长期方案)

这种方式让类库兼容.NET Core生态,摆脱旧配置系统的依赖:

  1. 给类库安装Microsoft.Extensions.Configuration NuGet包
  2. 重构类库代码,通过依赖注入接收配置,或让调用方直接传递连接字符串:
// 类库中数据操作示例类
public class DatabaseHelper
{
    private readonly string _connectionString;

    // 方式1:通过依赖注入IConfiguration获取连接字符串
    public DatabaseHelper(IConfiguration configuration)
    {
        _connectionString = configuration.GetConnectionString("ConnectionName");
    }

    // 方式2:由调用方直接传入连接字符串(灵活性更高)
    public DatabaseHelper(string connectionString)
    {
        _connectionString = connectionString;
    }

    // 数据库操作示例
    public void ExecuteQuery()
    {
        using(var conn = new SqlConnection(_connectionString))
        {
            // 执行数据库操作逻辑
        }
    }
}
  1. 在ASP.NET Core项目的Program.cs中注册类库服务:
var builder = WebApplication.CreateBuilder(args);

// 对应方式1的服务注册
builder.Services.AddScoped<DatabaseHelper>();

// 或对应方式2,直接传入读取到的连接字符串
builder.Services.AddScoped(sp => 
    new DatabaseHelper(builder.Configuration.GetConnectionString("ConnectionName")));

var app = builder.Build();
// ...其他项目配置

方案二:添加app.config让ConfigurationManager读取(临时兼容方案)

如果不想修改类库代码,可以在ASP.NET Core项目中添加传统配置文件:

  1. 在ASP.NET Core项目中新建app.config文件(注意不是web.config),内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="ConnectionName" 
         connectionString="Data Source=database;Initial Catalog=catalogname;User ID=username;Password=password;" />
  </connectionStrings>
</configuration>
  1. 右键该文件,设置复制到输出目录为「如果较新则复制」或「始终复制」
  2. 此时类库的ConfigurationManager.ConnectionStrings["ConnectionName"]就能正确读取到配置的连接字符串了

内容的提问来源于stack exchange,提问作者amc software

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:30:59