Skip to content

Commit ebf36a6

Browse files
Surround AddWindowsService() with a check to validate it's running as a service
1 parent 6c883bb commit ebf36a6

File tree

5 files changed

+35
-5
lines changed

5 files changed

+35
-5
lines changed

src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace ServiceControl.Audit;
1010
using Microsoft.AspNetCore.HttpLogging;
1111
using Microsoft.Extensions.DependencyInjection;
1212
using Microsoft.Extensions.Hosting;
13+
using Microsoft.Extensions.Hosting.WindowsServices;
1314
using Microsoft.Extensions.Logging;
1415
using Monitoring;
1516
using NLog.Extensions.Logging;
@@ -100,7 +101,12 @@ public static void AddServiceControlAudit(this IHostApplicationBuilder builder,
100101
services.AddHostedService<AuditIngestion>();
101102
}
102103

103-
builder.Services.AddWindowsService();
104+
if (WindowsServiceHelpers.IsWindowsService())
105+
{
106+
// The if is added for clarity, internally AddWindowsService has a similar logic
107+
builder.Services.AddWindowsService();
108+
//TODO register our own lifecycle that replaces the WindowsService default one
109+
}
104110
}
105111

106112
public static void AddServiceControlAuditInstallers(this IHostApplicationBuilder builder, Settings settings)

src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
using System.Threading.Tasks;
44
using Microsoft.Extensions.Hosting;
5+
using Microsoft.Extensions.Hosting.WindowsServices;
56
using Persistence;
67
using Settings;
78

@@ -17,7 +18,12 @@ public override async Task Execute(HostArguments args, Settings settings)
1718
var hostBuilder = Host.CreateApplicationBuilder();
1819
hostBuilder.Services.AddPersistence(persistenceSettings, persistenceConfiguration);
1920

20-
hostBuilder.Services.AddWindowsService();
21+
if (WindowsServiceHelpers.IsWindowsService())
22+
{
23+
// The if is added for clarity, internally AddWindowsService has a similar logic
24+
hostBuilder.Services.AddWindowsService();
25+
//TODO register our own lifecycle that replaces the WindowsService default one
26+
}
2127

2228
var host = hostBuilder.Build();
2329
await host.RunAsync();

src/ServiceControl.Monitoring/HostApplicationBuilderExtensions.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace ServiceControl.Monitoring;
1313
using Microsoft.AspNetCore.HttpLogging;
1414
using Microsoft.Extensions.DependencyInjection;
1515
using Microsoft.Extensions.Hosting;
16+
using Microsoft.Extensions.Hosting.WindowsServices;
1617
using Microsoft.Extensions.Logging;
1718
using NLog.Extensions.Logging;
1819
using NServiceBus;
@@ -41,7 +42,12 @@ public static void AddServiceControlMonitoring(this IHostApplicationBuilder host
4142

4243
services.Configure<HostOptions>(options => options.ShutdownTimeout = settings.ShutdownTimeout);
4344

44-
services.AddWindowsService();
45+
if (WindowsServiceHelpers.IsWindowsService())
46+
{
47+
// The if is added for clarity, internally AddWindowsService has a similar logic
48+
services.AddWindowsService();
49+
//TODO register our own lifecycle that replaces the WindowsService default one
50+
}
4551

4652
services.AddSingleton(settings);
4753
services.AddSingleton<EndpointRegistry>();

src/ServiceControl/HostApplicationBuilderExtensions.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace Particular.ServiceControl
1717
using Microsoft.AspNetCore.HttpLogging;
1818
using Microsoft.Extensions.DependencyInjection;
1919
using Microsoft.Extensions.Hosting;
20+
using Microsoft.Extensions.Hosting.WindowsServices;
2021
using Microsoft.Extensions.Logging;
2122
using NLog.Extensions.Logging;
2223
using NServiceBus;
@@ -95,7 +96,12 @@ public static void AddServiceControl(this IHostApplicationBuilder hostBuilder, S
9596
hostBuilder.AddInternalCustomChecks();
9697
}
9798

98-
hostBuilder.Services.AddWindowsService();
99+
if (WindowsServiceHelpers.IsWindowsService())
100+
{
101+
// The if is added for clarity, internally AddWindowsService has a similar logic
102+
hostBuilder.Services.AddWindowsService();
103+
//TODO register our own lifecycle that replaces the WindowsService default one
104+
}
99105

100106
hostBuilder.AddServiceControlComponents(settings, transportCustomization, ServiceControlMainInstance.Components);
101107
}

src/ServiceControl/Hosting/Commands/MaintenanceModeCommand.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
using System.Threading.Tasks;
44
using Microsoft.Extensions.Hosting;
5+
using Microsoft.Extensions.Hosting.WindowsServices;
56
using Particular.ServiceControl.Hosting;
67
using Persistence;
78
using ServiceBus.Management.Infrastructure.Settings;
@@ -13,7 +14,12 @@ public override async Task Execute(HostArguments args, Settings settings)
1314
var hostBuilder = Host.CreateApplicationBuilder();
1415
hostBuilder.Services.AddPersistence(settings, maintenanceMode: true);
1516

16-
hostBuilder.Services.AddWindowsService();
17+
if (WindowsServiceHelpers.IsWindowsService())
18+
{
19+
// The if is added for clarity, internally AddWindowsService has a similar logic
20+
hostBuilder.Services.AddWindowsService();
21+
//TODO register our own lifecycle that replaces the WindowsService default one
22+
}
1723

1824
var host = hostBuilder.Build();
1925
await host.RunAsync();

0 commit comments

Comments
 (0)