前言

一个软件的开发周期需要经历开发、测试、上线三个基本的阶段,同理我们在开发过程中会需要经常切换不同的运行环境。.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 根据配置文件动态发布至服务器的更多相关文章

  1. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入

    上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...

  2. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  3. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  4. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  5. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    nginx+uWSGI+django+virtualenv+supervisor发布web服务器   导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...

  6. ASP.NET Core 2.0 MVC 发布部署--------- IIS 具体操作

    .Net Core 部署到 IIS系统中的步骤 一.IIS 配置 启用 Web 服务器 (IIS) 角色并建立角色服务. 1.Windows Ddesktop 桌面操作系统(win7及更高版本) 导航 ...

  7. nginx_uWSGI_django_virtualenv_supervisor发布web服务器

    nginx_uWSGI_django_virtualenv_supervisor发布web服务器 nginx 导论 123456789101112131415161718192021222324252 ...

  8. 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 ...

  9. Qt 官方一键动态发布技能

    苦找了好几天动态库,程序可以运行了,结果没有图标还是少了运行库很苦恼,发现Qt 官方有一键动态发布功能感觉自己萌萌的,来自qt吧亲测可用. 集成开发环境 QtCreator 目前生成图形界面程序 ex ...

随机推荐

  1. BZOJ_1085_[SCOI2005]骑士精神_IDDFS

    BZOJ_1085_[SCOI2005]骑士精神_DFS Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑 士的走法(它可 ...

  2. BZOJ_3316_JC loves Mkk_ 二分答案 + 单调队列

    BZOJ_3316_JC loves Mkk_ 二分答案 + 单调队列 题意: 分析: 拆成链,二分答案,奇偶两个单调队列维护最大子段和,记录方案. 代码: #include <cstdio&g ...

  3. BZOJ_2298_[HAOI2011]problem a_线段树

    BZOJ_2298_[HAOI2011]problem a_线段树 Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话( ...

  4. java web 在线聊天的基本实现

    随着互联网的发展,http的协议有些时候不能满足需求,比如在现聊天的实现.如果使用http协议必须轮训,或者使用长链接.必须要一个request,这样后台才能发送信息到前端. 后台不能主动找客户端通信 ...

  5. python常见的报错提示

    在运行或编写一个程序时常会遇到错误异常,这时python会给你一个错误提示类名,告诉出现了什么样的问题(Python是面向对象语言,所以程序抛出的异常也是类).能很好的理解这些错误提示类名所代表的意思 ...

  6. 在weblogic上部署遇到的问题总结

    最近在weblogic上发布自己的项目,但是当调用程序服务时却报错了.于是查看了错误日志. 错误日志如下: Root cause of ServletException. java.lang.Link ...

  7. 第十四章——循环神经网络(Recurrent Neural Networks)(第一部分)

    由于本章过长,分为两个部分,这是第一部分. 这几年提到RNN,一般指Recurrent Neural Networks,至于翻译成循环神经网络还是递归神经网络都可以.wiki上面把Recurrent ...

  8. Django文件上传(经典上传方式)

    经典文件上传方式 创建URL from django.contrib import admin from django.urls import path from django.conf.urls i ...

  9. 基于tcp的套接字编程

    一,基础版服务器端客户端(一收一发,只有一个客户端链接) 服务器端: #Author : Kelvin #Date : 2019/1/28 22:10 from socket import * ser ...

  10. Python调用ansible API系列(五)综合使用

    如何把动态生成资产信息.执行playbook以及自定义结果结合起来用呢? #!/usr/bin/env python # -*- coding: utf-8 -*- """ ...