7.2配置系统与ASP.NET Core集成

简介: 7.2配置系统与ASP.NET Core集成

7.2配置系统与ASP.NET Core集成

CreateBuilder方法会按照下面的顺序提供默认配置:

  1. 加载现有的IConfiguration
  2. 加载根目录下的appsettings.json
  3. 加载根目录下的appesttings.Environment.json,Environment代表当前运行环境
  4. 当程序运行在开发环境下,程序会加载“用户机密”配置
  5. 加载环境变量
  6. 加载命令行中的配置

这个顺序可以更改,但是不建议更改,在项目开发的时候,一般不需要再去编写配置系统的初始化代码,我们可以直接通过WebApplication的Configuration属性来读取配置。

ASP.NET Core多环境配置

常见的环境有开发环境、测试环境、生产环境,有时不同的环境需要进行不同的配置。

环境变量ASPNETCORE_ENVIRONMENT的值代表了程序运行环境的名字:Development(开发环境)、Staging(测试环境)、Production(生产环境)。如果没有设置ASPNETCORE_ENVIRONMENT则默认为生产环境。

可以通过app.Environment.EnvironmentName读取到运行环境的名字,而且可以通过app.IsDevelopment、app.IsStaging、app.IsProduction来判断环境。

if (app.Environment.IsDevelopment())//只有开发环境时,才支持Swagger

{

   app.UseSwagger();

   app.UseSwaggerUI();

}

ASP.Net Core会先从appsettings.json下加载配置,然后从appesttings.Environment.json加载配置,可以是appsettings.Development.json、appsettings.Staging.json、appsettings.Production.json。一般我们在appsettings.json下编写所有环境共有的配置,在appesttings.Environment.json中编写对应于环境的配置。

用户机密

某些信息不能放到源码配置文件中,比如连接字符串,里面含有连接账号及密码等信息。.net提供一个用户机密机制允许用户将机密信息放到一个单独的JSON文件中,且该文件不放在项目中,因此不会被错误的上传的Github中。

右键项目->管理用户机密->填写配置信息。这个文件会放在系统目录中某GUID编号目录下。使用用户机密的注意事项:

  • 用户机密机制只是提供给开发者使用的
  • 系统内的JSON文件被删除,则需要重新配置

配置在ASP.NET Core的使用

WebApplication.CreateBuilder(args);下面添加配置语句

//在CreateBuilder方法中已经完成了配置系统的初始化,就不再需要使用service.AddOption方法来注册选项的相关服务

builder.Host.ConfigureAppConfiguration((_, configBuilder) => { //此处下划线是抛元,类似于占位符

   stringconnStr=builder.Configuration.GetConnectionString("configServer");//在用户机密里的节点

   configBuilder.AddDbConfiguration(() =>newSqlConnection(connStr));

});

//需要写配置类和配置节点的绑定

builder.Services.Configure<SmtpOptions>(builder.Configuration.GetSection("Smtp"));//SmtpOptions是配置实体类

相关文章
|
22天前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:&lt;https://github.com/khellang/Scrutor&gt;
39 5
|
5天前
|
前端开发 C# 开发者
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
25 12
|
5天前
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
|
5天前
|
开发框架 JavaScript 前端开发
精选2款.NET开源的博客系统
精选2款.NET开源的博客系统
|
5天前
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
|
2月前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
46 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
30天前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
27 3
|
7天前
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
25 0
|
3月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
2月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
59 0

热门文章

最新文章