欢迎访问宙启技术站
智能推送

ASP.NET Core怎么配置和使用环境变量

发布时间:2023-05-15 17:06:53

ASP.NET Core是一个开源的跨平台Web应用程序框架,用于构建高性能、可扩展、可靠的Web应用程序。ASP.NET Core支持使用环境变量来配置应用程序。本文将介绍ASP.NET Core如何使用环境变量进行配置。

1. 添加环境变量配置文件

在ASP.NET Core项目的根目录下,添加名为“appsettings.json”的JSON文件来保存环境变量。示例:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=MyDatabase;Trusted_Connection=True;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

2. 配置程序启动时读取环境变量

在“Program.cs”文件中,配置程序在启动时读取环境变量。示例:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using System;

namespace MyWebApp
{
    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>();

                    // 环境变量配置
                    var port = Environment.GetEnvironmentVariable("PORT");
                    if (!string.IsNullOrEmpty(port))
                    {
                        webBuilder.UseUrls($"http://*:{port}");
                    }
                });
    }
}

以上代码将从环境变量中获取“PORT”值,并使用该值来配置应用程序的URL。例如,在Heroku中,应用程序的端口由环境变量“PORT”定义。

3. 在应用程序中使用环境变量

可以在ASP.NET Core应用程序中的任何地方使用环境变量。例如,可以在控制器的构造函数中注入环境变量。示例:

using Microsoft.AspNetCore.Mvc;
using System;

namespace MyWebApp.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class MyController : ControllerBase
    {
        private readonly string _connectionString;

        public MyController()
        {
            _connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING");
        }

        [HttpGet]
        public string Get()
        {
            return _connectionString;
        }
    }
}

以上代码将从环境变量中获取“CONNECTION_STRING”值,并使用该值作为控制器的构造函数中的私有字段。例如,可以在Heroku中将数据库连接字符串作为环境变量传递给应用程序。

总结

在ASP.NET Core中,使用环境变量来配置应用程序是一个非常方便和灵活的方式。通过使用环境变量,可以轻松地将应用程序配置转移到不同的开发、测试和生产环境,并且不需要更改代码。