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);
                }
            }
        }
Beispiel #2
0
        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);
            }
        }