分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

.NET Core迁移技巧之web.config配置文件

发布时间:2023-09-06 01:06责任编辑:熊小新关键词:.NET配置

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

但是好消息是,我们是可以直接在.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迁移技巧之web.config配置文件

原文地址:http://www.cnblogs.com/mantgh/p/7425113.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved