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

将项目从.NET Standard2.0升级到.NET6.0后抛出ConfigurationErrorsException

.NET 6升级后ConfigurationErrorsException异常解决指南

异常原因

你的App.config仍保留大量.NET Framework专属配置节点,这些在.NET 6中完全不兼容,是触发System.Configuration.ConfigurationErrorsException的直接原因——尤其是<system.web>下的身份验证/角色管理节点,以及<startup>中的.NET Framework运行时配置。

.NET 6配置文件的核心变化

.NET 6属于.NET Core生态,和.NET Framework的配置体系差异很大:

  • 不再支持<system.web>、<startup>这类仅.NET Framework有效的节点
  • 官方推荐用appsettings.json作为配置文件,通过依赖注入的IConfiguration读取配置
  • 若坚持用App.config,仅能保留<appSettings>节点,且需适配读取方式

具体修复步骤

1. 清理App.config无效内容

删除所有.NET Framework专属节点,修改后内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
        <add key="PathEmployeeDefaults" value="./EmployeeDefaults.json" />
    </appSettings>
</configuration>
  • 移除<startup>:.NET 6会自动识别运行时版本,无需手动指定
  • 移除<system.web>:System.Web.ClientServices相关组件在.NET 6中已被彻底移除,无法继续使用

2. 适配配置读取逻辑

若继续用App.config读取

之前用ConfigurationManager.AppSettings的代码,需要安装对应NuGet包:

dotnet add package System.Configuration.ConfigurationManager

推荐改用.NET Core原生配置系统

  1. 添加appsettings.json文件,右键设置其“复制到输出目录”为“如果较新则复制”
  2. 在Program.cs中直接通过注入的配置对象读取:
var builder = WebApplication.CreateBuilder(args);
// 默认已加载appsettings.json
var employeeDefaultsPath = builder.Configuration["PathEmployeeDefaults"];

3. 替换淘汰的身份验证组件

原配置中的ClientFormsAuthenticationMembershipProvider和ClientRoleProvider是.NET Framework专属的客户端服务组件,.NET 6没有对应替代,需要重新实现身份验证逻辑:

  • 可以使用ASP.NET Core Identity框架
  • 或者基于JWT自定义身份验证方案

关于configSections的说明

在.NET 6的App.config中,不需要额外添加configSections——仅保留的<appSettings>是默认支持的配置节,无需手动声明配置节信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:53:00