Используйте ConnectionString из конфигурации в ASP. NET Core 3.1 - PullRequest
0 голосов
/ 02 мая 2020

Я использую рекомендованный подход для настройки Serilog с ASP. NET Core.

Как получить ConnectionString из конфигурации в методе Main для настройки SQL Приемник сервера?

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

In:. NET Core 3.1

1 Ответ

1 голос
/ 02 мая 2020

Вы можете получить среду:

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("...")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...