asp.net-core - 在 ASP.NET Core 3.1 中使用配置中的 ConnectionString
问题描述
我正在使用推荐的方法来配置带有 ASP.NET Core 的 Serilog。
如何从 Main 方法中的配置中获取 ConnectionString 以配置 SQL Server 接收器?
public class Program {
public static Int32 Main(String[] args) {
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
try {
CreateHostBuilder(args).Build().Run();
return 0;
} catch (Exception exception) {
return 1;
} finally {
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(String[] args) {
IHostBuilder builder = Host.CreateDefaultBuilder(args);
builder
.UseSerilog()
.ConfigureWebHostDefaults(builder => {
builder
.ConfigureAppConfiguration((context, configuration) => {
IWebHostEnvironment environment = context.HostingEnvironment;
configuration
.AddJsonFile("settings.json", false, true)
.AddJsonFile($"settings.{environment.EnvironmentName}.json", false, true)
.AddEnvironmentVariables();
})
.UseStartup<Startup>();
});
return builder;
}
}
我正在使用: - Serilog:2.9.0 - Serilog.Sinks.MSSqlServer:5.3.0
在:.NET 核心 3.1
解决方案
你可以得到环境:
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
然后使用它来手动配置构建器,就像您在下面做的那样:
var configuration = new ConfigurationBuilder()
.AddJsonFile("settings.json", false, true)
.AddJsonFile($"settings.{environment}.json", false, true)
.AddEnvironmentVariables()
.Build();
然后像往常一样获取连接字符串:
var connectionString = configuration.GetConnectionString("...")
推荐阅读
- python - Plotly:如何结合 make_subplots() 和 ff.create_distplot()?
- c# - c# StreamReader,用回车区分新行和新行
- android - 在 RoomDatabase 中获取 onCorruption 回调而不破坏现有实现
- python-3.x - 如何使用 Python 替换文件中除第一次出现的字符串之外的所有出现的字符串?
- python - 调用另一个脚本时 Python 系统崩溃
- c++ - 拥有 unique_ptr 对象的唯一所有权是什么意思?
- javascript - 点击后如何更新 iframe url 中的参数?
- angular - 角 | 如何为 div 定义模板变量
- javascript - 如何处理超过 20 位数字(大整数)?
- javascript - Making a proper fade-in and fade-out for a slideshow