diff --git a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs index eced9e35b2..d32e87d283 100644 --- a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs +++ b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs @@ -1,6 +1,7 @@ namespace ServiceControl.Audit.Persistence.RavenDB { using System; + using System.Configuration; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -100,7 +101,14 @@ internal static DatabaseConfiguration GetDatabaseConfiguration(PersistenceSettin throw new InvalidOperationException($"{DatabaseMaintenancePortKey} must be an integer."); } - var serverUrl = $"http://localhost:{databaseMaintenancePort}"; + + string host = "localhost"; + if (!string.IsNullOrEmpty(settings.Hostname)) + { + // Map '*' to '+' for Raven wildcard (bind all interfaces). Accept '+' as-is. + host = settings.Hostname == "*" ? "+" : settings.Hostname; + } + var serverUrl = $"http://{host}:{databaseMaintenancePort}"; var logPath = GetLogPath(settings); diff --git a/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs b/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs index b5b51676de..645f51137b 100644 --- a/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs +++ b/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs @@ -26,5 +26,7 @@ public PersistenceSettings( public int MaxBodySizeToStore { get; set; } public IDictionary PersisterSpecificSettings { get; } + + public string Hostname { get; set; } } } \ No newline at end of file diff --git a/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs b/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs index d65a66697f..cb527de835 100644 --- a/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs +++ b/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs @@ -35,6 +35,7 @@ public static void AddServiceControlAudit(this IHostApplicationBuilder builder, { var persistenceConfiguration = PersistenceConfigurationFactory.LoadPersistenceConfiguration(settings); var persistenceSettings = persistenceConfiguration.BuildPersistenceSettings(settings); + persistenceSettings.Hostname = settings.Hostname; RecordStartup(settings, configuration, persistenceConfiguration); diff --git a/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs b/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs index 4a92ce6b41..707607f9b4 100644 --- a/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs +++ b/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs @@ -15,6 +15,7 @@ public override async Task Execute(HostArguments args, Settings settings) var persistenceSettings = persistenceConfiguration.BuildPersistenceSettings(settings); persistenceSettings.MaintenanceMode = true; + persistenceSettings.Hostname = settings.Hostname; var hostBuilder = Host.CreateApplicationBuilder(); hostBuilder.Services.AddPersistence(persistenceSettings, persistenceConfiguration);