diff --git a/docker-compose.override.yml b/docker-compose.override.yml
index 24b0cf9a8..60f2efb45 100644
--- a/docker-compose.override.yml
+++ b/docker-compose.override.yml
@@ -342,20 +342,22 @@ services:
- HealthChecks-UI__HealthChecks__7__Uri=http://webmarketingapigw/hc
- HealthChecks-UI__HealthChecks__8__Name=Ordering HTTP Check
- HealthChecks-UI__HealthChecks__8__Uri=http://ordering.api/hc
- - HealthChecks-UI__HealthChecks__10__Name=Basket HTTP Check
- - HealthChecks-UI__HealthChecks__10__Uri=http://basket.api/hc
- - HealthChecks-UI__HealthChecks__11__Name=Catalog HTTP Check
- - HealthChecks-UI__HealthChecks__11__Uri=http://catalog.api/hc
- - HealthChecks-UI__HealthChecks__12__Name=Identity HTTP Check
- - HealthChecks-UI__HealthChecks__12__Uri=http://identity.api/hc
- - HealthChecks-UI__HealthChecks__13__Name=Marketing HTTP Check
- - HealthChecks-UI__HealthChecks__13__Uri=http://marketing.api/hc
- - HealthChecks-UI__HealthChecks__14__Name=Locations HTTP Check
- - HealthChecks-UI__HealthChecks__14__Uri=http://locations.api/hc
- - HealthChecks-UI__HealthChecks__15__Name=Payments HTTP Check
- - HealthChecks-UI__HealthChecks__15__Uri=http://payment.api/hc
- - HealthChecks-UI__HealthChecks__16__Name=Ordering SignalRHub HTTP Check
- - HealthChecks-UI__HealthChecks__16__Uri=http://ordering.signalrhub/hc
+ - HealthChecks-UI__HealthChecks__9__Name=Basket HTTP Check
+ - HealthChecks-UI__HealthChecks__9__Uri=http://basket.api/hc
+ - HealthChecks-UI__HealthChecks__10__Name=Catalog HTTP Check
+ - HealthChecks-UI__HealthChecks__10__Uri=http://catalog.api/hc
+ - HealthChecks-UI__HealthChecks__11__Name=Identity HTTP Check
+ - HealthChecks-UI__HealthChecks__11__Uri=http://identity.api/hc
+ - HealthChecks-UI__HealthChecks__12__Name=Marketing HTTP Check
+ - HealthChecks-UI__HealthChecks__12__Uri=http://marketing.api/hc
+ - HealthChecks-UI__HealthChecks__13__Name=Locations HTTP Check
+ - HealthChecks-UI__HealthChecks__13__Uri=http://locations.api/hc
+ - HealthChecks-UI__HealthChecks__14__Name=Payments HTTP Check
+ - HealthChecks-UI__HealthChecks__14__Uri=http://payment.api/hc
+ - HealthChecks-UI__HealthChecks__15__Name=Ordering SignalRHub HTTP Check
+ - HealthChecks-UI__HealthChecks__15__Uri=http://ordering.signalrhub/hc
+ - HealthChecks-UI__HealthChecks__16__Name=Ordering HTTP Background Check
+ - HealthChecks-UI__HealthChecks__16__Uri=http://ordering.backgroundtasks/hc
- ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY}
- OrchestratorType=${ORCHESTRATOR_TYPE}
ports:
diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile
index 1aeaaafc0..820f8d4b1 100644
--- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile
+++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim AS base
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj
index 50c756633..5168760a9 100644
--- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj
+++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj
@@ -9,21 +9,25 @@
+
+
+
+
+
+
+
+
-
+
+
+
-
-
-
-
-
-
diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs
index 6d4e72ded..152cd79a7 100644
--- a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs
+++ b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs
@@ -6,6 +6,8 @@ using Ordering.BackgroundTasks.Extensions;
using Ordering.BackgroundTasks.Tasks;
using Serilog;
using System.IO;
+using Microsoft.AspNetCore;
+using Microsoft.AspNetCore.Hosting;
namespace Ordering.BackgroundTasks
{
@@ -13,11 +15,11 @@ namespace Ordering.BackgroundTasks
{
public static void Main(string[] args)
{
- CreateHostBuilder(args).Build().Run();
+ CreateHostBuilder(args).Run();
}
- public static IHostBuilder CreateHostBuilder(string[] args) =>
- Host.CreateDefaultBuilder(args)
+ public static IWebHost CreateHostBuilder(string[] args) =>
+ WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((host, builder) =>
{
builder.SetBasePath(Directory.GetCurrentDirectory());
@@ -27,15 +29,7 @@ namespace Ordering.BackgroundTasks
builder.AddCommandLine(args);
})
.ConfigureLogging((host, builder) => builder.UseSerilog(host.Configuration).AddSerilog())
- .ConfigureServices((host, services) =>
- {
- services.AddCustomHealthCheck(host.Configuration);
- services.Configure(host.Configuration);
- services.AddOptions();
- services.AddHostedService();
- services.AddEventBus(host.Configuration);
- services.AddAutofac(container => container.Populate(services));
- })
- .UseServiceProviderFactory(new AutofacServiceProviderFactory());
+ .UseStartup()
+ .Build();
}
}
diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs
new file mode 100644
index 000000000..1f35b711c
--- /dev/null
+++ b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs
@@ -0,0 +1,57 @@
+namespace Ordering.BackgroundTasks
+{
+ using Autofac;
+ using Autofac.Extensions.DependencyInjection;
+ using Microsoft.AspNetCore.Builder;
+ using Microsoft.AspNetCore.Diagnostics.HealthChecks;
+ using Microsoft.Extensions.Configuration;
+ using Microsoft.Extensions.DependencyInjection;
+ using Microsoft.Extensions.Logging;
+ using Ordering.BackgroundTasks.Extensions;
+ using Ordering.BackgroundTasks.Tasks;
+ using System;
+ using HealthChecks.UI.Client;
+
+ public class Startup
+ {
+ public Startup(IConfiguration configuration)
+ {
+ Configuration = configuration;
+ }
+
+ public IConfiguration Configuration { get; }
+
+ public virtual IServiceProvider ConfigureServices(IServiceCollection services)
+ {
+ services.AddCustomHealthCheck(this.Configuration)
+ .Configure(this.Configuration)
+ .AddOptions()
+ .AddHostedService()
+ .AddEventBus(this.Configuration)
+ .AddAutofac(container => container.Populate(services));
+
+ var container = new ContainerBuilder();
+ container.Populate(services);
+
+ return new AutofacServiceProvider(container.Build());
+ }
+
+
+ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
+ {
+ app.UseRouting();
+ app.UseEndpoints(endpoints =>
+ {
+ endpoints.MapHealthChecks("/hc", new HealthCheckOptions()
+ {
+ Predicate = _ => true,
+ ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
+ });
+ endpoints.MapHealthChecks("/liveness", new HealthCheckOptions
+ {
+ Predicate = r => r.Name.Contains("self")
+ });
+ });
+ }
+ }
+}
diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props
index dceb4edd2..5ea99f10c 100644
--- a/src/_build/dependencies.props
+++ b/src/_build/dependencies.props
@@ -58,6 +58,7 @@
2.2.0
1.0.0
2.2.0
+ 3.0.0-preview4-19123-01
3.0.0-preview6.19307.2
3.0.0-preview7.19365.7
3.0.0-preview7.19365.7