.Net Core 根据配置文件动态发布至服务器
前言
一个软件的开发周期需要经历开发、测试、上线三个基本的阶段,同理我们在开发过程中会需要经常切换不同的运行环境。.NetCore可以通过配置文件以及写入系统环境变量来自动识别站点的运行环境,保证了数据的安全性。
.NetCore是有几个重要的配置文件,了解他们对.NetCore的开发非常有必要。
配置文件
appsettings.json
appsettings.json是提供给用户进行配置项写入和读取的站点配置文件。以前做asp网站我们都是从web.config.xml中写入和读取,现在即可换成appsettings.json文件。采取json文件的方式进行配置项的管理会让我们的配置方式更加灵活,我们可以在代码中读取配置文件后直接序列化成对象。
appsettings.development.json
appsettings.development.json文件是开发环境下读取的配置文件。即只有在站点宿主认为是开发环境模式下才会从该配置文件读取配置信息。如果一个配置节点在appsettings.json和appsettings.development.json都存在,只要运行环境是开发环境则系统会取appsettings.development.json内的配置节点信息,但是其他的配置节点信息会取appsettings.json上的配置节点信息; 这就是appsettings.development.json配置文件存在的意义,我们可以把开发数据库地址填写到该配置文件上;
appsettings.localhost.json
appsettings.Localhost.json文件是本机运行环境下读取的配置文件(在本机发布在IIS上例外,系统会默认为生产环境,在VS调试环境则可以)。除了读取的运行环境与appsettings.development.json不同外,其他规则都一致;
appsettings.production.json
appsettings.production.json是生产环境才读取的配置文件,规则和上面两种配置文件一样;
注意:无论当前站点在开发环境、生产环境、本机调试环境下系统读取配置文件都会从appsettings.json配置文件读取,只有当本环境对应的配置文件中有与从appsettings.json配置文件相同的节点情况下才会替换,否则是两个配置文件的配置项都同时包含!
服务辨别运行环境
开发环境需要写入系统变量,宿主会根据此变量辨别运行环境是开发环境还是生产环境。只有在vs上调试模式且宿主为IIS Express系统才认为是本地模式(localhost)。
Windows服务器环境变量
右击 我的电脑-->高级-->环境变量-->系统变量-->新建
变量名:ASPNETCORE_ENVIRONMENT
变量值:Development
如下图:

设置完毕后需要重启服务器。
.Net Core 根据配置文件动态发布至服务器的更多相关文章
- .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入
上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)
上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...
- nginx+uWSGI+django+virtualenv+supervisor发布web服务器
nginx+uWSGI+django+virtualenv+supervisor发布web服务器 导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...
- ASP.NET Core 2.0 MVC 发布部署--------- IIS 具体操作
.Net Core 部署到 IIS系统中的步骤 一.IIS 配置 启用 Web 服务器 (IIS) 角色并建立角色服务. 1.Windows Ddesktop 桌面操作系统(win7及更高版本) 导航 ...
- nginx_uWSGI_django_virtualenv_supervisor发布web服务器
nginx_uWSGI_django_virtualenv_supervisor发布web服务器 nginx 导论 123456789101112131415161718192021222324252 ...
- Cookies 初识 Dotnetspider EF 6.x、EF Core实现dynamic动态查询和EF Core注入多个上下文实例池你知道有什么问题? EntityFramework Core 运行dotnet ef命令迁移背后本质是什么?(EF Core迁移原理)
Cookies 1.创建HttpCookies Cookie=new HttpCookies("CookieName");2.添加内容Cookie.Values.Add(&qu ...
- Qt 官方一键动态发布技能
苦找了好几天动态库,程序可以运行了,结果没有图标还是少了运行库很苦恼,发现Qt 官方有一键动态发布功能感觉自己萌萌的,来自qt吧亲测可用. 集成开发环境 QtCreator 目前生成图形界面程序 ex ...
随机推荐
- bzoj 2653 middle 二分答案 主席树判定
判断中位数是否可行需要将当前的解作为分界,大于其的置为1,小于为-1,然后b-c必选,ab,cd可不选,这个用线段树判定就好 但不能每次跑,所以套主席树,按权值排序,构建主席树,更新时将上一个节点改为 ...
- JVM内存异常与常用内存参数设置总结
Java Web程序由于引入大量第三方java类库,在启动时经常会遇到内存溢出(Memory Overflow)或者内存泄漏(Memory leak)问题,导致程序启动失败. 一.OOM异常分类: O ...
- js默认参数实现方法
function simue (){ var a = arguments[0] ? arguments[0] : 1; var b = arguments[1] ? arguments[1] : 2; ...
- Form表单 JSON Content-type解析
Form表单 JSON Content-type解析 1 表单Form概述 在Form表单中,参数一般有: action 表单提交的url method 提交方式:post get name 表单的属 ...
- python3——模块
今天去听一个关于创业的讲座,心疼自己在那个地方站了 一个多小时(QAQ)我是心疼自己傻呀! 手机打王者之后就没有电了,一直站在那儿! 不过最后还是结束了,以后你们也会有很多讲座的,希望学弟学妹好好听讲 ...
- ruby整理
参考博客:https://www.cnblogs.com/felixzh/p/8081622.html 官网地址 https://rvm.io/rvm/install 一.前提 centos6.8下 ...
- .net core Entity Framework 与 EF Core
重点讲 Entity Framework Core ! (一)Entity Framework 它是适用于.NET 的对象关系映射程序 (ORM),现在的EF6已经是久经沙场,并经历重重磨难,获得一致 ...
- Java转Ruby【快速入门】
最近参加实习了,公司的技术栈中需要用到 Ruby 以及 Rails 框架,所以算是开始了踩坑之旅吧.. Ruby 简介 网上的简介要搜都能搜到,具体涉及的包括历史啦之类这里不再赘述,提几个关键词吧: ...
- 从壹开始微服务 [ DDD ] 之九 ║从军事故事中,明白领域命令验证(上)
烽烟 哈喽大家周二好呀,咱们又见面了,上周末掐指一算,距离 圣诞节 只有 5 周的时间了(如果你还不知道为啥我要提圣诞节这个时间点,可以看看我的第二系列开篇<之一 ║ D3模式设计初探 与 我的 ...
- Python进阶:全面解读高级特性之切片!
导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔 ...