public static void Main(string[] args) { var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{environmentName}.json", optional: true) .AddEnvironmentVariables(); using (var container = new FabricContainer() .AddOptions() .UseConfiguration(config) //willl also be set on hostbuilder .ConfigureSerilogging(logConfiguration => logConfiguration.MinimumLevel.Information() .Enrich.FromLogContext() .WriteTo.LiterateConsole(outputTemplate: LiterateLogTemplate)) .ConfigureApplicationInsights()) { container.AddNewExtension <LoggingExtension>(); if (args.Contains("--serviceFabric")) { container.ConfigureApplicationStorage(); RunInServiceFabric(container); } else { RunOnIIS(container); } } }
public static void Main(string[] args) { // var cp = CertificateProvider.GetProvider("BouncyCastle"); // Setup unhandled exception handlers. TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; using (var container = new FabricContainer()) { container.AddOptions(); container.ConfigureSerilogging(logConfiguration => logConfiguration.MinimumLevel.Debug() .Enrich.FromLogContext() .WriteTo.LiterateConsole(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message}{NewLine}{Exception}{NewLine}") .WriteTo.ApplicationInsightsTraces(Environment.GetEnvironmentVariable("APPLICATION_INSIGHTS"), Serilog.Events.LogEventLevel.Information)); container.ConfigureApplicationStorage(); var keyvaultINfo = container.Resolve <KeyVaultSecretManager>(); container.UseConfiguration(new ConfigurationBuilder() .AddAzureKeyVault(keyvaultINfo.KeyVaultUrl, keyvaultINfo.Client, keyvaultINfo)); container.Configure <KeyVaultOptions>("KeyVault"); container.WithLetsEncryptService(new LetsEncryptServiceOptions { BaseUri = Certes.Acme.WellKnownServers.LetsEncryptV2.AbsoluteUri// "https://acme-v01.api.letsencrypt.org" }); container.WithStatelessService <NginxGatewayService>("GatewayServiceType"); container.WithStatelessService <ApplicationStorageService>("ApplicationStorageServiceType"); container.WithStatelessService <KeyVaultService>("KeyVaultServiceType"); container.WithStatelessService <ResourceProviderService>("ResourceProviderServiceType"); container.WithStatefullService <GatewayManagementService>("GatewayManagementServiceType"); Thread.Sleep(Timeout.Infinite); } }