首页 后端开发 C#.Net教程 ASP.NET Core中新功能--环境变量和启动设置

ASP.NET Core中新功能--环境变量和启动设置

Jul 09, 2017 am 11:51 AM
asp.net core 新功能

这篇文章主要为大家详细介绍了ASP.NET Core环境变量和启动设置的配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单。我们只需要简单的修改配置文件,就可以实现开发、预演、生产环境的切换。

ASPNETCORE_ENVIRONMENT

ASP.NET Core控制环境切换最核心的东西是“ASPNETCORE_ENVIRONMENT”环境变量,它直接控制当前应用程序运行的环境类型。您可以通过在项目上右键菜单选择“属性”选项,然后切换到“调试”标签来修改此环境变量。

此环境变量框架默认提供了三个值,当然您也可以定义其它的值:

Development(开发)
Staging(预演)
Production(生产)

我们在Startup.cs文件中,可以使用相应的方法来控制应用程序的行为。以下是创建示例程序时Startup.cs文件生成的默认代码:


// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
 {
  loggerFactory.AddConsole(Configuration.GetSection("Logging"));
  loggerFactory.AddDebug();

  if (env.IsDevelopment())
  {
  app.UseDeveloperExceptionPage();
  app.UseBrowserLink();
  }
  else
  {
  app.UseExceptionHandler("/Home/Error");
  }

  app.UseStaticFiles();

  app.UseMvc(routes =>
  {
  routes.MapRoute(
   name: "default",
   template: "{controller=Home}/{action=Index}/{id?}");
  });
 }
登录后复制

其中 IHostingEnvironment 类型的变量表示的是当前应用程序运行的环境,ASP.Net Core提供了四个扩展方法,用于检测 “ASPNETCORE_ENVIRONMENT”当前的值。

IsDevelopment()
IsStaging()
IsProduction()
IsEnvironment()

如果您需要检查该应用程序是否在特定环境中运行,可以使用 env.IsEnvironment("environmentname") ,该方法忽略大小写(请不要使用 env.EnvironmentName == "Development" 来检查环境)。

过上面的代码,我们可以知道,如果当前是开发环境,使用UseDeveloperExceptionPage()、UseBrowserLink()方法启用开发环境的错误页面和启用Visual Stuido中的Browser Link功能,这些功能都有利于我们在开发过程中调试程序;但是在生产环境中我们不希望启用这些功能,而是将出错页面指向路径“/Home/Error”,给用户显示友好的错误界面。

launchSettings.json文件

ASP.Net Core包含一个launchSettings.json的新文件,您可以在项目中“Properties”文件夹中找到该文件:

此文件设置了Visual Studio可以启动的不同环境,以下是示例项目中launchSettings.json文件生成的默认代码:  


{
 "iisSettings": {
 "windowsAuthentication": false,
 "anonymousAuthentication": true,
 "iisExpress": {
 "applicationUrl": "http://localhost:22437/",
 "sslPort": 0
 }
 },
 "profiles": {
 "IIS Express": {
 "commandName": "IISExpress",
 "launchBrowser": true, 
 "environmentVariables": { 
 "ASPNETCORE_ENVIRONMENT": "Development"
 }
 },
 "CoreWebApp": {
 "commandName": "Project",
 "launchBrowser": true,
 "environmentVariables": {
 "ASPNETCORE_ENVIRONMENT": "Development"
 },
 "applicationUrl": "http://localhost:22438"
 }
 }
}
登录后复制

在这里,有两个配置节点:“IIS Express”、“CoreWebApp”,这两个节点,分别对应Visual Stuido的开始调试按钮的下拉选项:

launchSettings.json 文件用于设置在 Visual Stuido 运行应用程序的环境。我们也可以添加节点,该节点名称会自动添加到 Visual Stuido 调试按钮的下拉选项中。

现在我们来详细说一下这些属性的详细信息:  


{
 "iisSettings": {
 "windowsAuthentication": false,//启用Windows身份验证
 "anonymousAuthentication": true,//启用匿名身份验证
 "iisExpress": {
 "applicationUrl": "http://localhost:22437/",//应用启动的Url路径。
 "sslPort": 44355//启用SSL的端口
 }
 },
 "profiles": {
 "IIS Express": {
 "commandName": "IISExpress",
 "commandLineArgs": "", //传递命令的参数
 "workingDirectory": "", //设置命令的工作目录
 "launchBrowser": true, //是否在浏览器中启动
 "launchUrl": "1111", //在浏览器中启动的相对URL
 "environmentVariables": { //将环境变量设置为键/值对
 "ASPNETCORE_ENVIRONMENT": "Development"
 }
 }
 }
}
登录后复制

要获取其它更多属性的详细信息,请转到此链接:http://json.schemastore.org/launchsettings 。

Environment 标签

通过这个标签,应用程序当根据当前运行的环境修改MVC视图的结构。在示例项目中_Layout.cshtml文件生成的默认代码:


<environment names="Development">
 <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" rel="external nofollow" />
 <link rel="stylesheet" href="~/css/site.css" rel="external nofollow" />
 </environment>
 <environment names="Staging,Production">
 <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"
  asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" 
  asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
 <link rel="stylesheet" href="~/css/site.min.css" rel="external nofollow" asp-append-version="true" />
 </environment>
登录后复制

在这个示例中,当在开发模式下运行应用程序时,我们使用本地的Bootstrap文件和自定义css文件;但是如果在预演和生产环境中运行,我们则使用ASP.NET内容分发网络(CDN)上的文件副本和经过压缩过的自定义样式。通过这种方式,我们可以提高应用程序的性能。

总结

在ASP.NET Core中,开发者可以使用环境变量轻而易举控制应用程序在不同的环境中的行为。使用这些功能,我们完成以下功能:

  • 创建和使用自定义环境;

  • 根据应用程序运行的环境启用或禁用应用程序部分功能;

  • 使用 environment 标签修改当前环境中MVC视图。

以上是ASP.NET Core中新功能--环境变量和启动设置的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在 Windows 11 中启用 Core Isolation 的内存完整性功能 如何在 Windows 11 中启用 Core Isolation 的内存完整性功能 May 10, 2023 pm 11:49 PM

Microsoft的Windows112022Update(22H2)默认启用CoreIsolation的内存完整性保护。但是,如果您运行的是旧版本的操作系统,例如Windows112022Update(22H1),则需要手动打开此功能。在Windows11中开启CoreIsolation的内存完整性功能对于不了解核心隔离的用户,这是一个安全过程,旨在通过将Windows上的基本核心活动隔离在内存中来保护它们免受恶意程序的侵害。该进程与内存完整性功能相结合,可确保

iPadOS18新功能 iPadOS18新功能 Jun 12, 2024 pm 10:41 PM

今日凌晨,苹果正式发布了iPadOS18,该系统不仅拥有iOS18当中的经典功能,而且还新增了一些独特的功能,例如支持数学笔记计算器等,进一步提升了iPad用户的体验感,感兴趣的朋友快来看看吧。此次iPadOS18不仅完美继承了iOS18的核心功能,如个性化的控制中心设计,允许用户根据个人偏好自由调整控制项顺序和布局,以及备受期待的游戏模式,为游戏玩家提供了更流畅、更沉浸的游戏体验,还特别针对iPad的大屏优势和ApplePencil的创造性用途,加入了多项独特功能,进一步拓展了iPad的生产力

电脑core是什么意思 电脑core是什么意思 Sep 05, 2022 am 11:24 AM

电脑中core有两种意思:1、核心,也即内核,是CPU最重要的组成部分,CPU所有的计算、接受存储命令、处理数据都由核心执行;2、酷睿,core是英特尔的处理器名称,酷睿是英特尔公司继奔腾处理器之后推出的处理器品牌,目前已经发布了十二代酷睿处理器。

微信上线新功能:'安静模式” 微信上线新功能:'安静模式” Mar 04, 2024 pm 01:43 PM

据了解,微信上线了一个新功能:“安静模式”。开启后,微信在消息通知、音视频通话、视频号内容播放等所有场景下,都不会再发出声音。在iOS微信更新到最新版本,通过“微信”-“我”-“设置”-“关怀模式”-“安静模式”,就能开启。之后,微信在消息通知、音视频通话、视频号内容播放等所有场景下,都不会再发出声音。微信表示,这项功能是为了满足那些无法听到声音的人的需求而开发的。对于大多数人来说,声音可能是非常普通和易得的,但他们往往忽视了聋人群体并不具备这种感知能力,尽管他们也像其他人一样使用手机和微信。据

微软Edge浏览器新功能'超级拖拽”上线! 微软Edge浏览器新功能'超级拖拽”上线! Mar 04, 2024 pm 06:31 PM

小编近日得知,微软Edge浏览器新功能“超级拖拽”上线,解锁新标签页打开链接第四种方式,方便用户更快打开链接。目前在微软Edge浏览器中,用户想要在新标签页中打开链接或者图像,有以下三种方式:1、右键链接或者图像,然后选择相应的操作选项。2、拖拽链接或者图像到标签页栏。3、使用鼠标滚轮点击链接或者图像。而“超级拖拽”带来了第四种交互操作,用户单击链接、部分文本或图像,然后将其横向、向上或向下拖动一点,即可在新标签页中打开它。用户拖拽文本之后,会默认调用Edge浏览器的默认搜索引擎,打开新的标签页

如何修复 Windows 11 / 10 中的处理器热跳闸错误 [修复] 如何修复 Windows 11 / 10 中的处理器热跳闸错误 [修复] Apr 17, 2023 am 08:13 AM

大多数设备(例如笔记本电脑和台式机)长期被年轻游戏玩家和编码人员频繁使用。由于应用程序过载,系统有时会挂起。这使用户被迫关闭他们的系统。这主要发生在安装和玩重度游戏的玩家身上。当系统在强制关闭后尝试启动时,它会在黑屏上抛出一个错误,如下所示:以下是在此引导期间检测到的警告。这些可以在事件日志页面的设置中查看。警告:处理器热跳闸。按任意键继续。..当台式机或笔记本电脑的处理器温度超过其阈值温度时,总是会抛出这些类型的警告消息。下面列出了在Windows系统上发生这种情况的原因。许多繁重的应用程序在

iOS18新功能爆料 iOS18新功能爆料 Mar 06, 2024 pm 02:25 PM

随着苹果即将发布其年度软件重大更新的iOS18,这无疑将成为2024年备受瞩目的热门版本之一。据传言,此次更新将堪称iPhone的史上升级规模最大的软件升级之一,下面就给大家简单总结一下相关的功能升级iOS18新功能爆料1、据悉,苹果或将融入visionOS式风格于iOS18中,给人以耳目一新的操作体验。2、据传闻,该公司正积极测试AI模型,有望在iOS18版本上对Siri进行重大改进。3、此外,近期苹果已展开试验计划,向AppleCare推出了名为"Ask"的全新工具,旨在提升客户答询效率。4

Windows 11详细介绍新特性 Windows 11详细介绍新特性 Dec 23, 2023 pm 03:37 PM

新的win11操作系统为用户们带来了很多的全新功能和特色,非常的新颖好用给力,而今天我们就给你们带来了win11有什么新功能详细介绍,如果你不清楚就快来详细了解一下吧。win11有什么新功能:1、Win11全新的设计使UI显得简洁美观,更加体现现代化。2、微软称在任务栏居中的开始菜单和应用图标能够让用户更加迅速地找到需要的内容。3、Win11的更新包比Win10平均少40%,也就是说这样运行起来更加的省电,速度也更快。4、内置的Edge浏览器速度也有所提升,在Win11上,新增了多个任务排列方式

See all articles