.NET Core 2.0迁移小技巧之web.config 配置文件示例详解

发布时间 - 2026-01-11 02:58:47    点击率:

前言

相信大家应该都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件。官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重度使用web.cofig配置的项目迁移可能是不可接受的。

但是好消息是,我们是可以直接在.NET Core 2.0项目种利用上现有的web.config的。本文将详细介绍.NET Core 2.0迁移之web.config 配置文件的相关内容,下面话不多说了,来一起看看详细的介绍吧。

迁移方法

1.首先在解决方案中引入System.Configuration.ConfigurationManager,只有引入它才可以让我们已有的读取web.config代码起作用.

  

2. 导入web.config文件到项目根目录,并将名称修改为app.config. 因为.NET Core的项目本质是控制台应用,所以ConfigurationManager的API会去默认读取app.config配置文件,而不是web.config配置文件。

3.去除config中和需要的配置无关的内容,主要是<system.web> , <system.webServer><system.codedom>等典型asp.net标签。

移除前:

<?xml version="1.0" encoding="utf-8"?>
<configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication24-20170824065102.mdf;Initial Catalog=aspnet-WebApplication24-20170824065102;Integrated Security=True"
 providerName="System.Data.SqlClient" /> </connectionStrings>
 <appSettings>
 <add key="webpages:Version" value="3.0.0.0" />
 <add key="webpages:Enabled" value="false" />
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
 <add key="MyKey" value="true"/>
 </appSettings>
 <system.web>
 <compilation debug="true" targetFramework="4.7" />
 <httpRuntime targetFramework="4.7" />
 <httpModules>
 <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
 </httpModules>
 </system.web>
 <runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <dependentAssembly>
 <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
 <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
 <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
 <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
 <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
 <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
 <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
 </dependentAssembly>
 </assemblyBinding>
 </runtime>
 <system.webServer>
 <validation validateIntegratedModeConfiguration="false" />
 <modules>
 <remove name="ApplicationInsightsWebTracking" />
 <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
 </modules>
 </system.webServer>
 <system.codedom>
 <compilers>
 <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
 <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
 </compilers>
 </system.codedom>
</configuration>

修改后:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <configSections>
 <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 </configSections>
 <connectionStrings>
 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication24-20170824065102.mdf;Initial Catalog=aspnet-WebApplication24-20170824065102;Integrated Security=True"
 providerName="System.Data.SqlClient" />
 </connectionStrings>
 <appSettings>
 <add key="webpages:Version" value="3.0.0.0" />
 <add key="webpages:Enabled" value="false" />
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
 <add key="MyKey" value="true"/>
 </appSettings>
</configuration>

4.测试原ASP.NET代码,查看读取配置值

using System.Configuration;

namespace WebConfigTest.Configuration
{
 public class ConfigurationService
 {
 public static bool GetConfigValue(string key)
 {
 var result = false;
 var val= ConfigurationManager.AppSettings[key];
 if (val != null)
 {
 result = bool.Parse(val);
 }
 return result;
 }
 }
}

打个断点,看下读取配置值是否正确:

大功告成,读取的配置值完全正确。

大家可以使用这个方法快速迁移现有配置文件和代码过去啦。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# .net  # core  # webconfig  # 配置文件  # config  # ASP.NET core Web中使用appsettings.json配置文件的方法  # .NET Core简单读取json配置文件  # .NET Core读取配置文件方式详细总结  # 实现core文件自动生成配置文件的方法  # .NET Core2.1如何获取自定义配置文件信息详解  # 如何在ASP.NET Core类库项目中读取配置文件详解  # Asp.net Core与类库读取配置文件信息的方法  # .Net Core读取Json配置文件的实现示例  # asp.net core配置文件加载过程的深入了解  # ASP.NET Core中修改配置文件后自动加载新配置的方法详解  # 的是  # 相关内容  # 让我们  # 说了  # 不多  # 并将  # 才可以  # 这对  # 大功告成  # 可以直接  # 详细介绍  # 打个  # 这篇文章  # 谢谢大家  # 会去  # 取而代之  # 使用这个  # 移除  # 是否正确 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel怎么实现验证码(Captcha)功能  Python文本处理实践_日志清洗解析【指导】  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何快速搭建个人网站并优化SEO?  韩国服务器如何优化跨境访问实现高效连接?  如何用wdcp快速搭建高效网站?  如何在Tomcat中配置并部署网站项目?  Python制作简易注册登录系统  如何彻底卸载建站之星软件?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Bootstrap整体框架之JavaScript插件架构  微信小程序 HTTPS报错整理常见问题及解决方案  如何在阿里云通过域名搭建网站?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Linux系统运维自动化项目教程_Ansible批量管理实战  Python图片处理进阶教程_Pillow滤镜与图像增强  如何在万网主机上快速搭建网站?  PHP 500报错的快速解决方法  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何实现javascript表单验证_正则表达式有哪些实用技巧  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  用yum安装MySQLdb模块的步骤方法  如何有效防御Web建站篡改攻击?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Linux系统命令中tree命令详解  如何快速上传建站程序避免常见错误?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Android利用动画实现背景逐渐变暗  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何快速生成ASP一键建站模板并优化安全性?  如何在阿里云香港服务器快速搭建网站?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何利用DOS批处理实现定时关机操作详解  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何在景安云服务器上绑定域名并配置虚拟主机?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  网站制作壁纸教程视频,电脑壁纸网站?