web.config 配置文件示例详解
前言
相信大家应该都知道.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=\"Web\" /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;
}
}
}
打个断点,看下读取配置值是否正确:
大功告成,读取的配置值完全正确。
大家可以使用这个方法快速迁移现有配置文件和代码过去啦。
以上就是web.config 配置文件示例详解的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: web.config 配置文件示例详解
本文地址: https://pptw.com/jishu/592764.html
