ASP.NET Core环境变量和启动设置的配置教程

发布时间 - 2026-01-11 02:10:04    点击率:

在这一部分内容中,我们来讨论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" />
 <link rel="stylesheet" href="~/css/site.css" />
 </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" 
  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  # 环境变量  # 启动设置  # ASP.NET Core环境变量配置和启动设置讲解  # ASP.NET Core开发环境安装配置  # ASP.NET Core根据环境变量支持多个 appsettings.json配置文件  # ASP.NET Core 配置和使用环境变量的实现  # ASP.NET Core中的环境配置  # 应用程序  # 自定义  # 可以使用  # 您可以  # 我们可以  # 过程中  # 身份验证  # 的是  # 器中  # 都有  # 在这里  # 在这个  # 转到  # 这两个  # 请不要  # 只需要  # 您需要  # 设置为  # 轻而易举  # 您也 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站优化排名时,需要考虑哪些问题呢?  专业商城网站制作公司有哪些,pi商城官网是哪个?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  如何在IIS中配置站点IP、端口及主机头?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  如何在服务器上三步完成建站并提升流量?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何用狗爹虚拟主机快速搭建网站?  再谈Python中的字符串与字符编码(推荐)  Laravel安装步骤详细教程_Laravel环境搭建指南  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Laravel如何优化应用性能?(缓存和优化命令)  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何处理文件下载请求?(Response示例)  如何生成腾讯云建站专用兑换码?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  如何用免费手机建站系统零基础打造专业网站?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Android使用GridView实现日历的简单功能  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  如何为不同团队 ID 动态生成多个“认领值班”按钮  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  如何在万网开始建站?分步指南解析  黑客入侵网站服务器的常见手法有哪些?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  googleplay官方入口在哪里_Google Play官方商店快速入口指南  如何在IIS7中新建站点?详细步骤解析  北京企业网站设计制作公司,北京铁路集团官方网站?  北京网站制作的公司有哪些,北京白云观官方网站?  浅谈Javascript中的Label语句  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  微信小程序 input输入框控件详解及实例(多种示例)  Laravel怎么为数据库表字段添加索引以优化查询  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】