-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathMaintenanceModeCommand.cs
More file actions
33 lines (28 loc) · 1.24 KB
/
MaintenanceModeCommand.cs
File metadata and controls
33 lines (28 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
namespace ServiceControl.Audit.Infrastructure.Hosting.Commands
{
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Hosting.WindowsServices;
using Persistence;
using ServiceControl.Hosting;
using Settings;
class MaintenanceModeCommand : AbstractCommand
{
public override async Task Execute(HostArguments args, Settings settings)
{
var persistenceConfiguration = PersistenceConfigurationFactory.LoadPersistenceConfiguration(settings);
var persistenceSettings = persistenceConfiguration.BuildPersistenceSettings(settings);
persistenceSettings.MaintenanceMode = true;
persistenceSettings.Hostname = settings.Hostname;
var hostBuilder = Host.CreateApplicationBuilder();
hostBuilder.Services.AddPersistence(persistenceSettings, persistenceConfiguration);
if (WindowsServiceHelpers.IsWindowsService())
{
// The if is added for clarity, internally AddWindowsService has a similar logic
hostBuilder.AddWindowsServiceWithRequestTimeout();
}
var host = hostBuilder.Build();
await host.RunAsync();
}
}
}