예제 #1
0
        public static void Main(string[] args)
        {
            using (var container = new FabricContainer())
            {
                var config = new ConfigurationBuilder()
                             .SetBasePath(Directory.GetCurrentDirectory())
                             .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                             .AddJsonFile($"appsettings.{container.Resolve<IHostingEnvironment>().EnvironmentName}.json", optional: true)
                             .AddEnvironmentVariables();

                container.AddOptions()
                .UseConfiguration(config)        //willl also be set on hostbuilder
                .ConfigureSerilogging(logConfiguration =>
                                      logConfiguration.MinimumLevel.Information()
                                      .Enrich.FromLogContext()
                                      .WriteTo.LiterateConsole(outputTemplate: LiterateLogTemplate))
                .ConfigureApplicationInsights();

                container.Configure <BrandingOptions>("Branding");
                container.Configure <EndpointOptions>("Endpoints");

                container.RegisterInstance(new HttpClient());

                if (args.Contains("--serviceFabric"))
                {
                    RunInServiceFabric(container);
                }
                else
                {
                    RunOnIIS(container);
                }
            }
        }
예제 #2
0
        public static void Main(string[] args)
        {
            //var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");



            using (var container = new FabricContainer())

            {
                var environment = container.Resolve <IHostingEnvironment>();

                var config = new ConfigurationBuilder()
                             .SetBasePath(Directory.GetCurrentDirectory())
                             .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                             .AddJsonFile($"appsettings.{environment.EnvironmentName}.json", optional: true)
                             .AddEnvironmentVariables();

                if (environment.IsDevelopment())
                {
                    config.AddUserSecrets <Startup>();
                }

                container.AddOptions()
                .UseConfiguration(config)              //willl also be set on hostbuilder
                .ConfigureSerilogging(logConfiguration =>
                                      logConfiguration //.MinimumLevel.Information()
                                      .Enrich.FromLogContext()
                                      .WriteTo.LiterateConsole(outputTemplate: LiterateLogTemplate))
                .ConfigureApplicationInsights();


                container.Configure <IdentityServiceOptions>("IdentityService");

                container.RegisterType <CloudStorageAccount>(new ContainerControlledLifetimeManager(), new InjectionFactory((c) =>
                {
                    if (c.IsRegistered <IApplicationStorageService>())
                    {
                        var storage = c.Resolve <IApplicationStorageService>();
                        var token   = storage.GetApplicationStorageSharedAccessSignature().GetAwaiter().GetResult();
                        var name    = storage.GetApplicationStorageAccountNameAsync().GetAwaiter().GetResult();
                        return(new CloudStorageAccount(new StorageCredentials(token), name, null, true));
                    }
                    return(CloudStorageAccount.Parse(c.Resolve <IConfigurationRoot>().GetSection("IdentityService")["StorageAccount"]));
                }));

                if (args.Contains("--serviceFabric"))
                {
                    config.AddServiceFabricConfig("Config"); // Add Service Fabric configuration settings.
                    RunInServiceFabric(container);
                }
                else
                {
                    RunOnIIS(container);
                }
            }
        }
예제 #3
0
        public static void Main(string[] args)
        {
            // var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");



            using (var container = new FabricContainer())
            {
                var config = new ConfigurationBuilder()
                             .SetBasePath(Directory.GetCurrentDirectory())
                             .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                             .AddJsonFile($"appsettings.{container.Resolve<IHostingEnvironment>().EnvironmentName}.json", optional: true)
                             .AddEnvironmentVariables();

                container.AddOptions()
                .UseConfiguration(config)       //willl also be set on hostbuilder
                .ConfigureSerilogging(logConfiguration =>
                                      logConfiguration.MinimumLevel.Information()
                                      .Enrich.FromLogContext()
                                      .WriteTo.LiterateConsole(outputTemplate: LiterateLogTemplate))
                .ConfigureApplicationInsights();

                container.Configure <EndpointsOptions>("Endpoints");
                container.Configure <OidcClientConfiguration>("OidcClientConfiguration");
                container.Configure <ReverseProxyOptions>("ReverseProxySettings");

                if (args.Contains("--serviceFabric"))
                {
                    config.AddServiceFabricConfig("Config"); // Add Service Fabric configuration settings.
                    RunInServiceFabric(container);
                }
                else
                {
                    RunOnIIS(container);
                }
            }
        }
예제 #4
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);
            }
        }