(1-2)配置的升级 - ASP.NET从MVC5升级到MVC6
发布日期:2021-09-06 22:32:34 浏览次数:1 分类:技术文章

本文共 5542 字,大约阅读时间需要 18 分钟。

MVC5和MVC6的区别

在MVC5的时候,web.config文件无疑是整个配置的核心,从web配置,到应用程序的参数,都可以写在web.config里面的。

一个典型的web.config看上去是这样的。应用程序使用的各种设定,项目中的各种动态链接库及其版本信息,错误页面的指定,未知文件扩展名的注册等等,包罗万象。

MVC6的配置

首先,MVC的默认配置变成了JSON文件。(ASP.NET Core的配置管理支持XML,JSON,INI三种方式。)

你可以将配置文件做成自己喜欢的文件格式,或者多个文件格式混用。
(以下示例代码来自 ,三个配置文件的内容这里省略了,详细请参见Github)

using System;using Microsoft.Extensions.Configuration;namespace ConsoleApplication{    public class Program    {        public static void Main(string[] args)        {            var builder = new ConfigurationBuilder()                .AddJsonFile("appsettings.json")                .AddXmlFile("appsettings.xml")                .AddIniFile("appsettings.ini");            builder.AddEnvironmentVariables();            IConfigurationRoot Configuration = builder.Build();                        Console.WriteLine("Read json configuration file: " + Configuration["JsonData:DefaultConnection:ConnectionString"]);            Console.WriteLine(".");            Console.WriteLine(".");            Console.WriteLine("Read xml configuration file: ");            Console.WriteLine("Xml node content: " + Configuration["DefaultConnection"]);            Console.WriteLine("Xml node attribute 1: " + Configuration["DefaultConnection:key"]);            Console.WriteLine("Xml node attribute 2: " + Configuration["DefaultConnection:value"]);            Console.WriteLine(".");            Console.WriteLine(".");            Console.WriteLine("Read ini configuration file: " + Configuration["IniData:DefaultConnection"]);        }    }}

典型的Project.Json

配置文件比较长,这里就不再完整列出了,如果你想查看一个完整的例子。请使用以下链接

这里有一个注意点,ASP.NET Core可以同时支持经典的NET Framework 和 NET Core,使用哪个Framework,可以在配置里面定义。

  • 如果你想使用全新的.NET Core的Framework ,请这样配置你的 framework 节
"frameworks": {  "netcoreapp1.0": {    "imports": [      "dotnet5.6",      "dnxcore50",      "portable-net45+win8"    ]  }},
  • 如果您想使用.NET Framework 4.5.x,请这样配置你的 framework 节
"frameworks": {  "net452": { }},

如果您想知道两个Framework之间的区别您可以阅读本站以下文章:

一个简单的配置文件

{  "version": "1.0.0-*",  "buildOptions": {    "preserveCompilationContext": true,    "emitEntryPoint": true  },  "dependencies": {    "Microsoft.AspNetCore.Mvc": "1.0.0-*",    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0-*",    "Microsoft.AspNetCore.Diagnostics": "1.0.0-*",    "Microsoft.AspNetCore.StaticFiles": "1.0.0-*",    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-*",    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*",    "Microsoft.Extensions.Logging.Console": "1.0.0-*",    "Microsoft.Extensions.Logging.Debug": "1.0.0-*",    "Microsoft.NETCore.App": {      "type": "platform",      "version": "1.0.0-rc2-3002700"    }  },  "frameworks": {    "netcoreapp1.0": {      "imports": "dnxcore50"    }  }}

典型的appsettings.json

有一些关于应用程序业务逻辑,环境配置的参数,原来也是写在Web.config里面的,现在这个版本可以放到appsettings.json

我们看一下官方自动生成的appsettings.json是什么样子的。
数据库的连接字符串,日志设定,这些被放到了appsettings.json里面了。

{  "ConnectionStrings": {    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-NetCoreWeb-dff472d2-ddfc-4d7a-bb9c-19ab91e3564f;Trusted_Connection=True;MultipleActiveResultSets=true"  },  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Debug",      "System": "Information",      "Microsoft": "Information"    }  }}

注意:和project.json这个第一等公民不同,appsettings.json属于第二等公民(可选非必需)

它需要在启动的时候,引入Configuration系统。当然,笔者认为,即使你修改名称也是可以的,只要代码里面也相应修改即可。

var builder = new ConfigurationBuilder()                .SetBasePath(env.ContentRootPath)                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

使用方法是这样的:

loggerFactory.AddConsole(Configuration.GetSection("Logging"));            services.AddDbContext
(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

当然,如果你仔细研究的话,web.config文件还是有的。应该是在IIS模式的时候,IIS是必须有web.config的(可能不对,请指正)。

这里增加了AspNetCoreModule这个Handler。

IIS Support Baked In

IIS is a tremendous web server and we continue to provide first-class support for it. Use the new ASP.NET Core Module in your web.config (it’s added in the new project templates) to configure IIS to launch and host your application.

IIS是一个极其重要的Web服务器,我们继续为其提供最高等级的支持。使用新的ASP.NET Core Module在你的Web.config中,用来配置你的IIS,使其可以运行和作为你的应用程式的宿主。

参考文献

转载于:https://www.cnblogs.com/TextEditor/p/5514051.html

转载地址:https://blog.csdn.net/weixin_34273481/article/details/93313766 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:图片懒加载实现
下一篇:搭建cocos2d游戏引擎环境HelloWorld!

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月26日 10时30分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章