首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Dotnet Core使用哪个appsettings.json文件作为默认文件,环境文件还是父文件?

在.NET Core应用程序中,默认情况下,appsettings.json文件被用作应用程序的主要配置文件。当涉及到环境特定的配置时,.NET Core会查找与当前环境匹配的配置文件。这些环境特定的配置文件通常具有以下命名约定:

  • appsettings.Development.json 用于开发环境
  • appsettings.Production.json 用于生产环境
  • appsettings.Staging.json 用于暂存环境
  • 等等

当应用程序启动时,.NET Core会首先加载appsettings.json文件中的配置,然后根据当前环境加载相应的环境特定配置文件。如果存在多个环境特定的配置文件,只有与当前环境匹配的那个会被加载。

优势

  1. 分离关注点:将配置与代码分离,使得配置更容易管理和更新。
  2. 环境特定配置:支持不同环境的配置,使得部署和测试更加灵活。
  3. 易于维护:配置文件的集中管理使得维护和更新配置更加方便。

类型

  • 主要配置文件appsettings.json
  • 环境特定配置文件:如appsettings.Development.jsonappsettings.Production.json

应用场景

  • 开发环境:使用appsettings.Development.json来配置开发环境特定的设置,如调试模式、日志级别等。
  • 生产环境:使用appsettings.Production.json来配置生产环境特定的设置,如数据库连接字符串、安全设置等。
  • 测试环境:使用appsettings.Test.json来配置测试环境特定的设置。

常见问题及解决方法

问题:为什么我的环境特定配置没有生效?

原因:可能是由于以下原因之一:

  1. 环境变量未正确设置。
  2. 环境特定配置文件命名不正确。
  3. 配置文件路径不正确。

解决方法

  1. 确保环境变量ASPNETCORE_ENVIRONMENT已正确设置为当前环境名称(如DevelopmentProduction等)。
  2. 确保环境特定配置文件的命名符合约定,例如appsettings.Development.json
  3. 确保配置文件位于正确的路径,并且应用程序有权限读取这些文件。

示例代码

以下是一个简单的示例,展示如何在.NET Core应用程序中加载和使用配置:

代码语言:txt
复制
using Microsoft.Extensions.Configuration;
using System;

class Program
{
    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true);

        var configuration = builder.Build();

        var connectionString = configuration.GetConnectionString("DefaultConnection");
        Console.WriteLine($"Connection String: {connectionString}");
    }
}

参考链接

通过以上信息,您应该能够更好地理解.NET Core中appsettings.json文件的使用方式及其相关配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 通过 dotnet core 发布单文件时 log4net 无法使用

在使用 dotnet core 版本的 WPF 可以将发布文件打包为一个exe文件,但是此时小伙伴发现 log4net 无法运行,因为 log4net 说找不到配置文件 这是 子铭 小伙伴问我的问题,我尝试创建一个...dotnet core 的 WPF 程序,使用下面代码创建的 dotnet new wpf -o HudidaneahaFekujarchebea 在从另一个项目复制了 log4net 的配置的时候,...我发现了一个细节,在运行 log4net 默认会读取 Log.config 配置文件,而读取的文件夹是应用程序所在的文件夹,如果通过下面代码将软件发布单文件,那么因为 log4net 需要读取而配置文件找不到而不能使用...dotnet publish -r win10-x64 /p:PublishSingleFile=true 解决方法是 启动时写入配置文件 重定向配置文件 通过代码配置 不用log4net都成 --...-- 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

2.2K20

dotnet 使用 MSTestRunner 将单元测试制作为独立可执行文件

以往的单元测试都是不能单独作为一个独立的可执行文件跑的,需要在 VisualStudio 或 VSTest 或 dotnet test 里面运行。...这就限制了运行单元测试的环境了,有时候开发者可能期望在无 SDK 或开发环境下执行单元测试,这时就可以用到本文介绍的 MSTestRunner 功能,将单元测试制作为独立可执行文件 将单元测试制作为可执行文件...可执行文件可以作为独立框架发布的方式,如此可以在一些纯净的环境里面运行,或者是将单元测试打包分发给测试同事,请测试同事在大批量的设备上进行执行。...如此可见,将单元测试制作为可执行文件在许多地方都有用武之地,如: 在纯净系统环境运行 在大批量设备统一执行 允许外置工具调试单元测试执行情况 以上的 “允许外置工具调试单元测试执行情况” 一般指的是现有的性能调试工具...,且在上面的开发体验现在还是不如在 Windows 上熟悉和舒服的。

23810
  • 指定 ASP.NET Core 应用监听的端口

    指定 ASP.NET Core 应用监听的端口 ASP.NET Core 应用默认监听的端口是 5000 , 在调试或者部署的过程中经常需要指定监听的端口来来运行, 本文就这个问题, 进行一个总结, 可以通过下面的方法来指定运行端口...使用命令行参数 使用命令行参数 --urls 是最常用的方法了, 测试或者开发环境下用的最多。...只需要在运行命令中添加这个参数即可, 如下所示: dotnet run --urls=http://localhost:5001/ 在 appsettings.json 中添加配置 如果倾向于使用配置文件..., 可以在 appsettings.json 文件中添加 urls 节点, 如下所示: { "urls": "http://localhost:5001" } 这样, 执行 dotnet run 时...环境变量 ASP.NET Core 应用在启动时会自动读取名称以 ASPNETCORE 开头的环境变量, 所以也可以通过环境变量来指定监听的端口。

    2.2K40

    ASP.NET Core launchsettings.json文件(8)《从零开始学ASP.NET CORE MVC》:

    当我们从Visual Studio或使用.NET Core CLI运行此ASP.NET Core项目时,将使用此文件中的设置。 此文件仅用于本地开发环境。...如果您希望您的Asp.Net Core 应用程序在发布和部署应用程序时使用某些独立的设置,请将它们存储在appsettings.json文件中。...我们通常将应用程序的配置信息存储在此文件中,比如数据库连接字符串。 我们还可以使用不同环境的appsettings.json文件。例如,appsettings.Staging.json用于临时环境。...在- ASP.NET Core中,除了appsettings.json文件外,我们还可以配置源,如环境变量,用户密钥,命令行参数甚至创建属于我们自己的自定义配置源。...另外一种情况,如果我们使用.NET Core CLI(dotnet run)运行项目,则使用带有"commandName": "Project",的配置文件 。

    2.3K31

    第一个,net core项目,一起入门 !!!

    最近项目上开始使用.net core,新的项目,熟悉的东西比较多,现在花点时间来梳理一下,重头开始搭建一个.net core项目。...环境准备:   为了开发.net core,微软已经明确终止.net core 2.2,所以我们在实际开发中必须要用.net core3.1了吧,为了更好的使用,所以开发环境赶快升级上来:vs总得升级到...第三步:简单梳理一下.net core项目的配置文件:   首先.net core 的配置文件都是.json后缀文件,主要由两个配置文件launchSettings.json和appsettings.json...  launchSettings.json:简单的说就是项目配置文件,也就是单击项目属性可视化界面对应的json数据文件,里面主要配置一下环境变量等等,其主要还是为调试需要。   ...通过编译文件启动:     进入到编译后的文件所在目录:执行如下命令即可:       dotnet /项目名称.dll --urls "http://*8000;https://*8001;" 4、当然是生成环境中

    79810

    第一个,net core项目,.net core入门介绍来了

    环境准备:​   为了开发.net core,微软已经明确终止.net core 2.2,所以我们在实际开发中必须要用.net core3.1了吧,为了更好的使用,所以开发环境赶快升级上来:vs总得升级到...第一步:创建一个.net core 项目:​   其实创建一个.net core项目还是很简单的,只要会.net项目的,那就是小儿科,如果刚刚入行,百度也是一大波大波的。...第三步:简单梳理一下.net core项目的配置文件:​   首先.net core 的配置文件都是.json后缀文件,主要由两个配置文件launchSettings.json和appsettings.json...  launchSettings.json:简单的说就是项目配置文件,也就是单击项目属性可视化界面对应的json数据文件,里面主要配置一下环境变量等等,其主要还是为调试需要。   ...通过编译文件启动:     进入到编译后的文件所在目录:执行如下命令即可:       dotnet /项目名称.dll --urls "http://*8000;https://*8001;" 4、当然是生成环境中

    26810

    ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用

    本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用  (ASP.NET Core 系列目录)。 系统环境为CentOS 8 。 ...并在该目录新建一个文本文件名为Dockerfile,内容如下: FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR...这里有个不算技巧的技巧,为了方便在非Docker的情况下测试,依然可以在appsettings.json文件中设置MongoDB的连接字符串,当部署到Docker中的时候,通过Docker环境变量配置的连接字符串会覆盖...这是因为在讲述IConfiguration的文章中说过,系统是先加载appsettings.json中的设置,后加载环境变量中的设置的,二者的key相同,所以最终会以环境变量中的配置为准。  ...此时Visual Studio帮我们会在项目中添加一个名为Dockerfile的文件: FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim

    2.8K30

    理解 ASP.NET Core - 配置(Configuration)

    当创建默认通用主机(Host)时,默认就已经添加了前缀为DOTNET_的环境变量,加载应用配置时,也添加了未限定前缀的环境变量。...另外,在 ASP.NET Core 中,配置 Web主机时,默认添加了前缀为ASPNETCORE_的环境变量。...(:)作为分层键,但是我在测试过程中,发现当同时配置了系统环境变量时,程序读取到的环境变量值会发生错乱(一部分是系统环境变量,一部分是该文件中的环境变量)。...所以建议大家还是使用双下划线(__)作为分层键。 在Linux平台,当设置的环境变量为URL时,需要设置为转义后的URL。...WebHost默认配置的也加进来了): 内存配置提供程序 环境变量配置提供程序(prefix: DOTNET_) 环境变量配置提供程序(prefix: ASPNETCORE_) JSON配置提供程序(appsettings.json

    2.3K21

    ANCWEB - 基于 ASP.NET CORE 2.0 的 WEB 开发

    技术栈说明 参考技术文章,使用如下技术: ASP.NET Core 2.0 Web API MSSQL Angular 5 Bootstrap 4 开发环境说明 使用VS Code 开发,插件列表:...环境搭建 .NET CORE 环境安装 .NET Core 实战笔记1-介绍和安装 Visual Studio Code 即 上述插件列表的插件安装 SqlServer 2017 on linux...ASPNETCORE_ENVIRONMENT="Development" windows下可以在控制面板–系统–高级设置里面设置环境变量的值 在项目的appSettings.json文件里面设置也可以...添加Entity Framework Core 使用指令直接添加: dotnet add package Microsoft.EntityFrameworkCore.Design dotnet restore...dotnet ef 创建 DbContext 上下文 创建一个文件夹叫做Database, 然后在里面建立一个文件TvContext.cs: using Microsoft.EntityFrameworkCore

    1K10

    基于ASP.NET core的MVC站点开发笔记 0x01

    基于ASP.NET core的MVC站点开发笔记 0x01 我的环境 OS type:mac Software:vscode Dotnet core version:2.0/3.1 dotnet sdk...第一次尝试,使用ASP.NET Core Empty就可以,代号是web,使用命令dotnet new web就可以新建一个空项目,项目的名称就是当前目录的名字mvc-test。...CreateDefaultBuilder函数会使用默认的方法载入配置,例如通过读取launchSettings.json确定当前的发布环境: ?...注:dotnet core 3版本里,取消了WebHost,使用Host以更通用的方式进行程序托管。...是谁在最后谁生效吗还是报错? 是不是只需要满足Controller后缀就可以了,不一定非得继承Controller,继承他只是为了使用一些已经打包好的父类函数。

    88410

    ASP.NET Core 6 浅析环境变量与配置的优先级

    本文将简单介绍在 dotnet 6 下的 ASP.NET Core 里的环境变量当成配置的优先级行为。...这部分内容在官方文档都有提到,只是我开始粗心没有看仔细,而踩到了坑,特意写篇博客记录一下 在 ASP.NET Core 环境变量和 appsettings.json 文件的优先级从高到低如下: 不带 ASPNETCORE..._ 前缀的环境变量 appsettings.json 带 ASPNETCORE_ 前缀的环境变量 本文将使用日志配置作为例子来告诉大家 ASP.NET Core 的行为 在默认的项目配置里面,存放在 appsettings.json...文件里面有关于日志的默认配置,代码如下 { "Logging": { "LogLevel": { "Default": "Information",...__LogLevel__Microsoft.AspNetCore 这样的配置 通过本文开始可以知道的是环境变量这两个不同的格式和 appsettings.json 文件的优先级不同。

    24810

    在 CentOS 上使用 Jexus 托管运行 ZKEACMS

    ZKEACMS Core 默认使用的是Oracle官方的Mysql驱动,由于Oracle官方的mysql驱动有很多问题,目前还是beta版本,最近也不见更新,我在生产环境使用的是Pomelo.EntityFrameworkCore.MySql...修改连接字符串 打开 appsettings.json,加入 MySQL的数据库连接字符串,结果如下 {   "ConnectionStrings": {     "DefaultConnection...软件在windows和Linux中进行文件传输》 [1495329829361_2981_1495329894599.png] 配置Jexus运行ZKEACMS Core 定位到目录,然后使用 dotnet...命令运行 cd /var/www/csharpkit dotnet ZKEACMS.WebHost.dll 运行成功以后,就可以使用您服务器的IP或者域名访问了,默认访问的端口是5000 退出SSH...使用以下命令: 1、切换到Jexus配置文件目录 cd /usr/jexus/siteconf 2、复制默认的配置文件为test cp default csharpkit 3、编辑csharpkit配置文件

    2.3K00

    使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    本例todoapi便是我们给镜像起的名字,没有设置标签即使用默认标签latest。 如命令执行成功,终端会有类似如下输出: $ docker build -t todoapi ....-d参数表示会将容器作为服务启动,不需要终端交互。...还有就是,生产环境我们一般不会将 ASP.NET Core 应用程序的宿主服务器 Kestrel 直接暴露给用户,通常是在前面加一个反向代理服务 Nginx。...其使用YAML文件来配置应用程序的服务,最终您只要使用一个命令就可以从配置中创建并启动所有服务。...首先,在TodoApi项目根目录中,创建三个应用服务myproject-todoapi-*需要的程序配置文件appsettings.json,具体内容如下: "ConnectionStrings": {

    1.9K70

    在 CentOS 8.2 上配置 ASP.NET Core 6.0 运行环境

    创建新项目 在你的工作目录中,使用以下命令创建一个新的 ASP.NET Core Web 应用程序: mkdir myapp cd myapp dotnet new webapp 2....测试应用程序 打开浏览器,访问 http://localhost:5000,你应该会看到默认的 ASP.NET Core 欢迎页面。...配置反向代理(Nginx) 为了在生产环境中运行 ASP.NET Core 应用程序,通常会使用 Nginx 作为反向代理。 1....发布应用程序 在你的应用程序目录中,使用以下命令发布应用程序: dotnet publish -c Release -o out 这将在 out 目录中生成发布文件。 2....ASP.NET Core 提供了集成的日志记录功能,可以帮助你捕捉应用程序的运行情况。 1. 配置日志记录 你可以在 appsettings.json 文件中配置日志记录选项。

    2K20
    领券