• Intern Day43


    ASP.NET Core配置文件

    ASP.NET Core中有几个重要的文件需要自行去了解:appsettings.json、appsettings.Production.json、appsettings.Development.json、launchsettings.json。

    appsettings.json:我们可以在appsettings.Development.json和appsettings.Production.json分别设置相应的配置信息,比如数据库连接

    appsettings.Production.json:里面当前项目的生产环境的数据库连接字符串。

    appsettings.Development.json:配置文件中配置我们开发环境的数据库连接字符串

    launchsettings.json

    自定义配置JSON:有时候一个复杂的项目配置信息比较多,Appsettings.json会很复杂*,*所以一般都会把一些单独分离出来,比如将数据库连接配置分离出来。

    读取配置

    程序会按照以下顺序加载/读取配置(优先级):环境变量 > appsettings.json(development.json、Production)> appsettings.json > DB ENV(配置中心)

    (这个对吗!?下面这个)

    读取各种配置源的默认顺序:appsettings.json > appsettings.{Environment}.json > 用户机密 > 环境变量 > 命令行参数

    如何在appsettings.json中读取这些配置(比如在项目中需要读取 appsettings.Development.json中的数据库连接字符串)/.NET Core类库项目中如何读取appsettings.json中的配置:在Startup.cs中去写依赖注入https://www.cnblogs.com/OFSHK/p/14450868.html

    访问 Startup 类中的配置信息:请注入框架提供的 IConfiguration服务。Startup类位于 startup. cs 文件中。这又涉及到了依赖注入相关的知识。在 asp. net Core 中, 依赖注入是不可或缺的一部分。依赖注入能使我们能够创建低耦合、可扩展且易于测试的系统。

    Program.cs中的环境变量

    ASP.NET Core是一个全新的Web开发平台,微软在它上面构建了MVC等Web框架。

    appsettings.json 在开发项目的过程当中,生产环境与调试环境的配置是不一样的,比如连接字符串这种东西,开发环境肯定不能连生产数据库。之前需要准备两个同名的配置文件来处理很麻烦。现在ASP .NET Core支持利用环境变量来动态配置 JSON 文件、来控制项目连接的是哪一个环境,并且通过这种环境变量也获取到不同的数据库连接字符串。

    ASP.NET Core控制环境切换最核心的东西是Program.cs中的 环境变量ASPNETCORE_ENVIRONMENT ,它直接控制当前应用程序运行的环境类型。 ASPNETCORE_ENVIRONMENT设置为Development,调试的时候就会读取appsettings.Development.json的数据;设置为Production,调试的时候就会读取appsettings.Production.json的数据。

    此环境变量框架默认提供了三个值(也可以定义其它值):Development(开发环境)、Staging(预演环境)、Production(生产环境 默认值)

    • 可以在在项目中添加对应的appsettings.Development.jsonappsettings.Production.jsonappsettings.Staging.json

    • 项目默认生成的appsettings.json用来存放公共配置,当我们设置Development环境时,最终的配置项是appsettings.Development.jsonappsettings.json求并集的结果,若两文件有同名配置项则以appsettings.Development.json为准,其他环境同理。

    • 无论ASPNETCORE_ENVIRONMENT设置为Development、Staging、Production,只要项目中有appsettings.Production.json,那项目发布后运行时默认会读取Production的配置。无论 ASPNETCORE_ENVIRONMENT设置为Development、Staging、Production,只要项目中没有appsettings.Production.json那项目发布后运行时就会仅读取appsettings.json的配置。

    如果在发布后动态设置环境变量,可以通过修改web.config的方式来实现,Core项目中默认是没有web.config文件的,但是发布后会生成一个web.config文件,我们可以通过添加 environmentVariable 节点来设置环境变量:

    launchsettings.json文件

    • 运行ASP.NET Core项目时,使用此文件中的设置。

    • 仅用于本地开发环境。我们不需要把它发布到生产环境的Asp.net Core 程序中。不会上传到gitlab?

    • 自己的Asp.Net Core 应用程序在发布和部署应用程序时使用某些独立的设置,可以把它们存储在appsettings.json文件中。我们通常将应用程序的配置信息存储在此文件中,比如数据库连接字符串。

    • 还可以使用不同环境的appsettings.json文件。例如,appsettings.Staging.json用于临时环境。在- ASP.NET Core中,除了appsettings.json文件外,我们还可以配置源,如环境变量,用户密钥,命令行参数。创建属于我们自己的自定义配置源。

    • launchSettings.json文件中的设置 环境变量“ASPNETCORE_ENVIRONMENT”设置的默认设置为“Development”。我们可以将此值更改为Staging或Production,具体取决于我们是在Staging还是Production环境中运行此项目。我们还可以添加新的环境变量。这些环境变量在我们的Asp.Net Core应用程序中都可用,我们可以包含根据这些环境变量的值有条件地执行的代码。

    参考

    1. https://www.cnblogs.com/qtiger/p/12960639.html#autoid-5-2-0

    2. 在 ASP.NET Core 中使用多个环境的官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-5.0。https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-5.0

  • 相关阅读:
    设计模式笔记——策略模式(Strategy Pattern)
    C#基础笔记——集合和LINQ
    C#基础笔记——命名规范
    C#基础笔记——语言基础
    C#基础笔记——代码整洁
    C#基础笔记——序列化(Serialize)和反序列化(NonSerialize)
    C#基础笔记——资源管理
    C#基础笔记——协变(Covariance)和逆变(Contravariance)
    C#基础笔记——委托(Delegate)和事件(Event)
    C#基础笔记——泛型(Genericity)
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14608804.html
Copyright © 2020-2023  润新知