在项目中添加一个依赖项来使用Microsoft.Extensions.Configuration
和Microsoft.Extensions.Configuration.FileExtensions
。在*.csproj
文件中添加以下行:
在项目的目录下,添加一个名为appsettings.json
的配置文件,并添加以下内容:
{
"ConnectionStrings": {
"MyDatabase": "Server=(local);Database=MyDb; Trusted_Connection=True;"
}
}
在ASP.NET Core 6应用程序的Program.cs
文件中,配置CreateHostBuilder
方法以加载配置。这包括加载appsettings.json
文件和其他配置源,例如环境变量。
using Microsoft.Extensions.Configuration;
public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
CreateHostBuilder(config, args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(IConfiguration configuration, string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.AddConfiguration(configuration);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
在Dockerfile中设置环境变量以使ASP.NET Core应用程序在Docker容器中运行,这样就可以正确加载配置了。
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["MyProject.csproj", "./"]
RUN dotnet restore "./MyProject.csproj"
COPY . .
ENV ASPNETCORE_URLS=http://*:80
ENV ASPNETCORE_ENVIRONMENT=d