public static void Main(string[] args) { var isService = !(Debugger.IsAttached || args.Contains("--console")); if (isService) { var pathToExe = Process.GetCurrentProcess().MainModule.FileName; var pathToContentRoot = Path.GetDirectoryName(pathToExe); Directory.SetCurrentDirectory(pathToContentRoot); } var builder = CreateWebHostBuilder( args.Where(arg => arg != "--console").ToArray()); var host = builder.Build(); if (!AspNetCoreEnvironment.IsLocal()) { builder.AddEbConfig(); } builder.AddAppSettings(); if (isService) { host.RunAsCustomService(); } else { host.Run(); } }
private AmazonQueueProvider InitializeAmazonQueueProvider(IServiceProvider serviceProvider) { var storageProvider = new AmazonQueueProvider($"sportlance-{AspNetCoreEnvironment.ShortEnvironment(_configuration["SLEnvironment"])}-mail-queue"); storageProvider.InitializeAsync().Wait(); return(storageProvider); }
public void Configure(IApplicationBuilder app) { if (!AspNetCoreEnvironment.IsProduction()) { app.UseDeveloperExceptionPage(); } app.UseCors(CorsPolicyName); app.UseMvc(); }
// Нужен для EF Core 2.x https://go.microsoft.com/fwlink/?linkid=851728 public static IWebHost BuildWebHost(string[] args) { var builder = WebHost.CreateDefaultBuilder(args); if (!AspNetCoreEnvironment.IsLocal()) { builder.AddEbConfig(); } builder.AddAppSettings(); if (!AspNetCoreEnvironment.IsProduction()) { builder.UseSetting("detailedErrors", "true"); builder.CaptureStartupErrors(true); } return(builder.UseStartup <Startup>() .Build()); }
private void ConfigureAmazonServices(IServiceCollection services) { var awsOptions = _configuration.GetAWSOptions(); // Это нужно для амазона, потому что там нельзя прописать дефолтный профиль // В амазоне нужно в environments добавить эти ключи и значения if (!AspNetCoreEnvironment.IsLocal()) { awsOptions.Credentials = new BasicAWSCredentials(_configuration["AWS:AccessKey"], _configuration["AWS:SecretKey"]); } services.AddDefaultAWSOptions(awsOptions); services.AddAWSService <IAmazonS3>(); services.AddSingleton(InitializeTrainersStorageProvider); services.AddSingleton(InitializeTeamsStorageProvider); services.AddSingleton(InitializeTeamPhotosStorageProvider); services.AddSingleton(InitializeUsersStorageProvider); services.AddSingleton(InitializeAmazonQueueProvider); }
public void ConfigureServices(IServiceCollection services) { _logger.LogInformation($"Начинается конфигурация сервисов..."); //if (AspNetCoreEnvironment.IsLocal()) //{ services.AddMvc(); //} services.Configure <SmtpOptions>(_configuration.GetSection(nameof(SmtpOptions))); services.Configure <SiteOptions>(_configuration.GetSection(nameof(SiteOptions))); var awsOptions = _configuration.GetAWSOptions(); // Это нужно для амазона, потому что там нельзя прописать дефолтный профиль // В амазоне нужно в environments добавить эти ключи и значения if (!AspNetCoreEnvironment.IsLocal()) { awsOptions.Credentials = new BasicAWSCredentials(_configuration["AWS:AccessKey"], _configuration["AWS:SecretKey"]); } services.AddDefaultAWSOptions(awsOptions); // 1. Нужно для IService (читать темплейты почты) services.AddAWSService <IAmazonS3>(); // 2. Нужно для MailQueue (Отравлять письма) services.AddTransient <IService, Service>(); services.AddHostedService <MailHostedService>(); //if (AspNetCoreEnvironment.IsLocal()) //{ ConfigureCorsPolicy(services); //} _logger.LogInformation($"Конфигурация сервисов успешна."); }
public static int Main(string[] args) { Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(Configuration) .Enrich.FromLogContext() .Enrich.WithSpan() .Enrich.WithExceptionDetails() .Enrich.WithMachineName() .Enrich.WithProperty("Environment", AspNetCoreEnvironment) .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(Configuration["ElasticConfiguration:Uri"])) { AutoRegisterTemplate = true, AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7, IndexFormat = $"{Assembly.GetExecutingAssembly().GetName().Name.ToLower().Replace(".", "-")}-{AspNetCoreEnvironment?.ToLower().Replace(".", "-")}-{DateTime.UtcNow:yyyy-MM}" }) .CreateLogger(); try { Log.Information("Starting web host"); CreateHostBuilder(args).Build().Run(); return(0); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly"); return(1); } finally { Log.CloseAndFlush(); } }
public MailHostedService(ILogger<MailHostedService> logger, IService service, IConfiguration configuration) : base($"sportlance-{AspNetCoreEnvironment.ShortEnvironment(configuration["SLEnvironment"])}-mail-queue") { _service = service; _logger = logger; }