Asp.net 为什么最新的.net 4.7在my web.config中添加了无效的configsection?

Asp.net 为什么最新的.net 4.7在my web.config中添加了无效的configsection?,asp.net,asp.net-mvc,.net-4.0,.net-4.7,Asp.net,Asp.net Mvc,.net 4.0,.net 4.7,我在asp.net应用程序中遇到问题,该应用程序会动态更新和重新加载web.config 以下代码用于保存web.config中的appsettings部分: public static void SetWebConfigValue(string keyValue, string value, bool isDefault) { if (!string.IsNullOrEmpty(keyValue)) {

我在asp.net应用程序中遇到问题,该应用程序会动态更新和重新加载web.config

以下代码用于保存
web.config
中的
appsettings
部分:

     public static void SetWebConfigValue(string keyValue, string value, bool isDefault)
        {
            if (!string.IsNullOrEmpty(keyValue))
            {
                Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

                AppSettingsSection appSettings = config.AppSettings;

                KeyValueConfigurationCollection settings = appSettings.Settings;

                if (KeyExists(settings.AllKeys, keyValue))
                {
                    settings.Remove(keyValue);
                }

                if (!isDefault) settings.Add(keyValue, value);

                config.Save(ConfigurationSaveMode.Modified, true);
            }
        }
当我在具有.net 4.0运行时的计算机上部署web应用时,此代码工作正常。但是,在安装了.net 4.7运行时的计算机上,会向web.config添加一个额外的(空的)
。由于此设置不能为空,因此在重新加载
web.config
时会使web应用程序崩溃

编辑:问题:为什么最新的.net 4.7会在my web.config中添加无效的configsection


编辑2:创建了以下问题:

我们也遇到了这个问题

我认为微软似乎错过了.NET4.7和早期版本之间的向后兼容性


您并没有真正提出这个问题,但我们最终做的是在保存配置文件后将其作为字符串读取,然后使用字符串替换删除了有问题的部分,并再次将该字符串保存到文件中。虽然不漂亮,但它完成了任务。

有什么问题吗?好的,谢谢你确认你也有这个问题。我已将此作为问题提交: