如何配置 ASP.NET Core 应用程序?

在应用程序的开发过程中,甚至在它构建之后,您经常需要更改控制应用程序行为方式的各种设置。配置是指控制应用程序行为的外部值,包括应用程序在运行时使用的设置和参数。

关于存储配置值的最佳实践是在应用程序之外,而不是在源代码中对其进行硬编码。您不希望每次更改配置时都重新编译和重新启动应用程序。还有安全隐患。您不想将数据库连接字符串或密码以纯文本形式存储在源代码中。

ASP.NET Core 使管理应用程序的配置变得非常容易。您可以通过各种来源配置设置,例如 JSON 文件、环境变量和命令行参数。框架负责加载这些设置,并通过统一的配置对象使它们可用。它支持多种文件格式,例如 JSON、XML、YAML 等。您还可以创建自己的自定义配置提供程序。该框架还允许您覆盖设置。

以下是ASP.NETCore 支持的各种配置提供程序:

  • 设置文件,例如 appsettings.json

  • 环境变量

  • Azure 密钥保管库

  • Azure 应用程序配置

  • 命令行参数

  • 自定义提供程序,已安装或已创建

  • 目录文件

  • 内存中的 .NET 对象

CreateDefaultBuilder()Program 类中的方法提供了默认配置。

public class Program{

   public static void Main(string[] args){

      CreateHostBuilder(args).Build().Run();

   }

   public static IHostBuilder CreateHostBuilder(string[] args) =>

      Host.CreateDefaultBuilder(args)

         .ConfigureWebHostDefaults(webBuilder => {

            webBuilder.UseStartup<Startup>();

         });

}

此方法按以下顺序加载配置:

  • 链式配置提供者

  • appsettings.json

  • appsettings.Environment.json

  • 应用机密

  • 环境变量

  • 命令行参数

如果您稍后添加更多配置提供程序,它们将覆盖之前的设置。

环境变量

EnvironmentVariablesConfigurationProvider 从环境变量中加载配置值作为键值对。这是在阅读 appsettings.json、appsettings.Environment.json 和用户机密后完成的。因此,来自环境变量的设置会覆盖来自appsettings.json文件和用户机密的设置。

在 Windows 上,您可以使用 set 或 setx 命令设置环境变量。

set CONN_STR="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"

命令行变量

通过命令行设置的配置设置会覆盖所有其他配置提供程序。它使用 CommandLineConfigurationProvider 从命令行参数加载配置作为键值对。例如:

dotnet run CONN_STR="Server=myServerAddress; Database=myDataBase; User Id=myUsername; Password=myPassword;"

以上是 如何配置 ASP.NET Core 应用程序? 的全部内容, 来源链接: utcz.com/z/347558.html

回到顶部