范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

ASP。NET和ASP。NETCore多环境配置对比

  前言
  多环境配置应该都很熟悉了,最为常见的环境便是 Debug  和Release  ,例如下图是新建的一个asp.net  项目,配置文件展开共有三个文件组成
  有些开发者从来没了解过 Web.Debug.config  和Web.Release.config  ,始终是一个Web.config  文件改来改去来切换不同的配置,但凡有点追求都不能忍受这种煎熬。asp.net下的多环境配置
  双击打开 Web.Debug.config  和Web.Release.config  任何一个,看看里面的内容。Web.Debug.config <?xml version="1.0" encoding="utf-8"?>                   
  微软为了让我们使用它,把不仅给出示例,还配上详细的注释,看过注释和示例大概就该知道如何进行配置,覆盖 Web.config  中的配置。
  下面展示下最为常用的appSettings  如何配置                                                                             
  经过这样的配置后,本机开发时读取到 MyKey  的值为Myvalue  ,发布生产环境时值为Releasvalue  。
  按照上面的配置,本地发布程序试试效果。
  发布成功后,打开发布后生成的 Web.config  文件,我们发现开发环境下Web.config  中对应的值被替换了,这样开发和生产配置分别配置在不同文件,不需要频繁修改配置文件切换配置了。
  如何增加额外的环境配置
  有时候Debug和Release两个环境还不能满足我们的需要,需要增加更多的环境配置。
  打开菜单生成-->配置管理器,新建一个 TEST1  环境
  然后右键 Web.config  选择添加配置转换  (第四个)
  会自动生成一个 Web.TEST1.config  文件,非常的人性化,然后我们在该文件配置一些参数。
  更改发布的配置,进行发布。
  打开发布成功后的 Web.config  文件
  效果与预期一致。 aspnetcore下的多环境配置
  aspnetcore中的配置文件被 appsettings.json  所取代,.NET Core中的配置是使用一个或多个配置提供程序执行的。 配置提供程序使用各种配置源从键值对读取配置数据:什么是配置提供程序
  下表显示了 .NET Core 应用可用的配置提供程序。
  提供程序
  通过以下对象提供配置
  Azure 应用配置提供程序
  Azure 应用程序配置
  Azure Key Vault 配置提供程序
  Azure Key Vault
  命令行配置提供程序
  命令行参数
  自定义配置提供程序
  自定义源
  环境变量配置提供程序
  环境变量
  文件配置提供程序
  JSON、XML 和 INI 文件
  Key-per-file 配置提供程序
  目录文件
  内存配置提供程序
  内存中集合
  应用机密(机密管理器)
  用户配置文件目录中的文件
  详细内容参考 .NET 中的配置
  https://docs.microsoft.com/zh-cn/dotnet/core/extensions/configuration
  其中以下部分比较值得注意
  划重点: 后来添加的配置提供程序会替代之前的密钥设置
  appsettings.Development.json  比appsettings.json  后加载,则后加载的会覆盖先加载配置的值,没毛病!多环境配置文件时如何加载
  为了彻底弄清楚底层加载逻辑,下载源码一探究竟。 builder.ConfigureAppConfiguration((hostingContext, config) =>         {             var env = hostingContext.HostingEnvironment;              config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)                   .AddJsonFile(#34;appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);              if (env.IsDevelopment())             {                 if (!string.IsNullOrEmpty(env.ApplicationName))                 {                     var appAssembly = Assembly.Load(new AssemblyName(env.ApplicationName));                     if (appAssembly != null)                     {                         config.AddUserSecrets(appAssembly, optional: true);                     }                 }             }              config.AddEnvironmentVariables();              if (args != null)             {                 config.AddCommandLine(args);             }         })
  默认的 WebHostBuilder  实现中,用环境变量env.EnvironmentName  值拼接的json文件进行加载。这也是为什么开发阶段会加载appsettings.Development.json  配置文件的原理。开发阶段的多环境
  如何传参修改环境变量 EnvironmentName  值是问题的关键,若能修改想要的值,然后创建对应名称的配置文件即可。
  在web根目录存在一个文件:Properties/launchSettings.json
  其中有一个配置环境变量的配置"environmentVariables": {     "ASPNETCORE_ENVIRONMENT": "Development" },
  本地开发时只需要创建多个启动配置,分别设置不同的 ASPNETCORE_ENVIRONMENT  即可进行切换了,修改后的launchSettings.json  // launchSettings.json {   "iisSettings": {     "windowsAuthentication": false,     "anonymousAuthentication": true,     "iisExpress": {       "applicationUrl": "http://localhost:2364",       "sslPort": 44302     }   },   "profiles": {     "Web1": {       "commandName": "Project",       "launchBrowser": true,       "environmentVariables": {         "ASPNETCORE_ENVIRONMENT": "Development"       },       "applicationUrl": "https://localhost:7006;http://localhost:5006",       "dotnetRunMessages": true     },     "Web1:Test": {       "commandName": "Project",       "launchBrowser": true,       "environmentVariables": {         "ASPNETCORE_ENVIRONMENT": "TEST"       },       "applicationUrl": "https://localhost:7006;http://localhost:5006",       "dotnetRunMessages": true     }   } }
  Web1  和Web1:Test  启动选项便会同步显示在VS启动选项中,切换为Web1:Test  再运行程序,就会加载appsettings.TEST.json  ,效果和appsettings.Development.json  没区别。
  发布阶段的实现多环境配置
  在上文中我们学会了在本地配置多个不同环境配置进行开发,那如果需要发布的生产环境也有很多种配置,那如何让程序自动加载不同的配置文件呢,毕竟 launchSettings.json  文件只是在开发时搭配VS用的,既然launchSettings.json  可以配置环境变量,没了它我们手动创建环境变量应该也可以。在操作系统添加环境变量如:
  也可以在程序启动时通过命令行传参设置环境值。
  但是这两种我都感觉不方便,我们希望程序根据不同的环境发布好以后,只需要直接执行就好,而不是需要进行额外的配置或传参。 EnvironmentName 属性
  在项目的工程文件中有 EnvironmentName  属性,可以指定当前EnvironmentName  值,添加如下代码
  然后编译后的,直接运行,就能够读取到 appsettings.TEST.json  配置文件。
  这配置不会覆盖launchSettings.json  中指定的环境值,但在影响发布后的EnvironmentName  值,从而可以改变实现发布后默认的EnvironmentName  值。
  那这样设置后,岂不是发布后的EnvironmentName  值只能是Test  ,如果要发布其他环境还要每次发布前修改这个值,那不是很麻烦吗?
  没错如果没有点其他手段,那这真是多此一举啊,请看下图。
  懂了吧,我们只需要多配置一个 PublishProfile  发布文件,指定不同的配置  项,然后结合Condition  条件来控制EnvironmentName  。
  至此,完美实现根据不同环境选择不同的发布文件,进行发布项目,目标机器不需要做任何配置,直接运行就是我们想要的效果。
  总结虽然ASP.NET和ASP.NETCore实现多环境的方式不同,但是最后发布时我们可以做到一样的效果,所有的配置都是一次性的,发布时指定对应的 PublishProfile  即可。本文作者:  Gui.H 本文链接:  https://www.cnblogs.com/springhgui/p/16154573.html

某款咖啡磨豆机使用测评早起的鸟儿有虫吃,而早起的我,注定是被鸟吃的命运。不确定是否因为数据杀熟的缘故最近网页老是给我推荐某款咖啡磨豆机的信息正巧我手上刚好也有这么一款磨豆机本来该怎着多一事不如少一事的念JavaScript,面向对象,类对象属性方法,静态属性和方法概念面向对象(ObjectOriented)1面向对象是软件开发方法,一种编程范式。2面向对象的概念和应用,已超越了程序设计和软件开发,扩展到如数据库系统交互式界面应用结构应用平台前端面试常问JavaScript继承的几种方法js继承原型链实现继承functionParent()this。parentparentParent。prototype。getParentfunction()returnthisSmartisanOS2。x版本系统跳过激活方法可能有很多朋友收藏了U1T2这样的老机型,发现系统恢复出厂之后无法激活。也可能有朋友喜欢把设备封箱之前把它降级到最初的样子,也就是问世时软硬结合的顶峰水平。众所周知,老版本的SOS中国电信集团公司云网运营部(大数据和AI中心)招聘43人根据工作需要,集团公司云网运营部(大数据和AI中心)现对以下岗位进行公开招聘。一招聘岗位(一)北京岗位1云网运营管理工程师(IDC方向,1人)2云网运营管理工程师(动环方向,1人)美国电信公司ATampampampT和Verizon拒绝延迟推出最新5G无线服务华尔街日报等多家外媒消息,美国电话电报公司(ATT)和威瑞森通信公司(Verizon)1月2日发表联合声明,拒绝了延迟推出最新5G无线服务的请求。上周五,航空公司及美国交通部官员要最新版Lightroom2022来啦,史诗级功能增强,看完忍不住换了要说修图就用Photoshop,那么调色就少不了Lightroom了。它提供了很多照片的编辑工具,比如说提升照片的亮度和颜色删除照片上的瑕疵让照片变得更加的生动形象等等,几乎能满足最新数据华为营收6340亿,与苹果相比,差距有多大?文杨剑勇2021年,华为营收预计约6340亿人民币。这是华为轮值董事长郭平所透露的数据。并指出经受住了严峻的考验,整体经营情况符合预期。不过,这个营收规模相比2020年的8914亿苹果iPhone连续第二个月登顶中国手机市场销量冠军华尔街日报1月3日报道,根据市场研究数据,受iPhone13系列成功的推动,苹果公司11月连续第二个月在中国登顶手机销量冠军。据报道,市场研究公司CounterpointResea多元视角下的元宇宙在这波元宇宙热潮中,我们既可以看到谷歌Meta(原名Facebook)等互联网巨头和科技企业的引领性布局,也观察到追逐新风口的各路资本开始从幕后转至台前。元宇宙是什么?会给人类社会python第一课你有压力过大,偷偷抹眼泪的时候吗学习python的第一天1下载Python解释器手机上下载扇贝编程或者QPython电脑去官网WelcometoPython。org(httpsww
怎么选手机。看配置还是?怎么选择手机,看配置还是?关于这个手机怎么选很多人并没完全明白大部分小伙伴选择手机完全就是看外观,看品牌看价格,说到配置很多人根本就不懂,至于摄像头完全就看像素然后再拍照清不清晰,怎么把旧iPhone上的备份迁移到新iPhone上?苹果手机不断更新换代,很多苹果手机发烧友在喜获新机的同时,也会面临一个问题资料转移。在换了新手机之后,如何将以前的资料转移到新的手机上呢?给大家介绍两种方法这两种方法都是苹果官方提爱立熊A4打印机,为家庭和学生专门打造的,低成本打印神器自从孩子上学之后,很多家庭就开始有了诸多烦恼,其中就有学习资料的打印。以往很多学习资料都是学校直接打印出来给学生的,到现在就开始变了味道。自从社交媒体功能越来越完善,家长和老师之间孩子上学了,家里有必要购买打印机吗,什么型号的性价比较好?经历了才知道。个人觉得还是有必要购买的,很实用,又方便,节约很多时间。但是还是要根据个人家里的实际情况而定。打印机的牌子很多,我家买的是一台爱普森的小白,这款就是针对孩子设计,适合曝华为MateX3将于4月发布麒麟9000120Hz高刷屏,内外兼修2021年2月22日,华为MateX2折叠屏手机正式发布,凭借出色的外观设计内外双屏结构影像能力和鸿蒙OS系统,华为折叠屏手机深受用户喜爱。在IDC提供的2021年中国折叠屏手机市三星S23Ultra概念机曝光240Hz超级屏6500mAh,无可挑剔随着智能手机市场的竞争越来越激烈了起来,很多手机厂商都推出了不少外观新颖的机型,以便吸引更多人的购买欲。不过,再怎么推陈出新,也没有哪一款新机型的外观令人满意。特别是如今跟风的较多iOS15。3。1iOS15。4Beta均已关闭验证今天早些时候苹果正式关闭了iOS15。3。1验证通道,这就意味着无法通过刷机降级到iOS15。3。1,目前仅有iOS15。4的验证通道开启苹果在今天早上开始陆续关闭了部分设备的iO售价5。69万续航300km,测评雷丁芒果,到底适不适合家用?说到雷丁汽车,相信大部分朋友都没有听说过这个汽车品牌,但是你要回村问问一些大爷大妈,说不定他们都知道,毕竟雷丁汽车就是造老头乐出身的,并且还有着不错的销量表现。而如今随着新能源造车淘宝的傲慢成就了拼多多现在回头想来拼多多入局电商到现在的成就,真可以说是果敢敏锐判断的结果,相对于滴滴进入打车市场前没有一个已经成熟的APP而言,拼多多在淘宝和京东的围剿下牢牢占据目前的位置实在让人佩服不挤牙膏的水桶机,iFixDSDGRYPHON蓝牙解码耳放播放一体机iFi2021年底对一些产品不声不响进行了迭代更新,比如ZENDACV2ZENBLUEV2等。其中有一个新品xDSDGRYPHON(俗称灰菠萝)是我非常关注的,因为它正是我之前非常6。7英寸120Hz屏realmeGTNeo3发布,Neo2沦为牺牲品,抢购没商量1999元起价格让我们直呼真香realmeGTNeo3神机搭载金刚石冰芯散热系统Max。1999元起价格让我们直呼真香realmeGTNeo3神机史上最大总散热面积39606mm,