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