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

ASP.NET v5使用ConfigurationManager.AppSettings读取web.config值为空如何解决

问题根因

ASP.NET v5属于ASP.NET Core系列版本,默认不再使用.NET Framework体系下的ConfigurationManagerAPI读取配置,且web.config仅作为IIS部署时的服务器配置文件存在,默认不会被加载为应用配置文件,因此直接调用ConfigurationManager.AppSettings["key"]会返回空值。

解决方案

方案1:沿用传统ConfigurationManager读取逻辑

如果需要兼容旧代码的写法,按以下步骤配置即可:

  • 安装适配你当前.NET版本的NuGet包:System.Configuration.ConfigurationManager
  • 右键项目中的web.config文件,选择「属性」,将「复制到输出目录」项设置为「如果较新则复制」
  • 确认web.config的配置结构符合标准格式,示例如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
        <add key="dbconnectionstring" value="你的实际数据库连接串" />
        <add key="Databasename" value="你的实际数据库名称" />
    </appSettings>
    <!-- 原有IIS部署相关配置保留即可 -->
</configuration>

完成以上配置后即可正常通过ConfigurationManager.AppSettings["dbconnectionstring"]读取到对应值。

方案2:使用ASP.NET Core原生配置体系(更推荐)

这是ASP.NET Core的标准配置实现,灵活性更高,适配多环境、配置中心等扩展场景:

  • 将配置项迁移到项目默认的appsettings.json文件中,示例如下:
{
  "AppSettings": {
    "dbconnectionstring": "你的实际数据库连接串",
    "Databasename": "你的实际数据库名称"
  }
}
  • 通过依赖注入注入IConfiguration接口读取配置,代码示例如下:
public class CustomerService : ICustomerService
{
    private readonly IConfiguration _configuration;

    // 构造函数注入IConfiguration实例
    public CustomerService(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void AddCustomer()
    {
        // 读取配置项
        string yeet = _configuration["AppSettings:dbconnectionstring"];
        // 后续业务逻辑
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:03:03