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); } } }
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); } } }
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); } }
public void WithoutAspneteCore() { var container = new FabricContainer(); container.ConfigureSerilogging(logConfiguration => logConfiguration.MinimumLevel.Information() .Enrich.FromLogContext() .WriteTo.LiterateConsole(outputTemplate: LiterateLogTemplate)); var first = container.Resolve <ILoggerFactory>(); //Singleton / containercontrolled lifetime. var child = container.CreateChildContainer(); var second = child.Resolve <ILoggerFactory>(); Assert.AreEqual(first, second); child.Dispose(); //Debugged, logger factory is not disposed. }
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); } } }