public override void Reload() { Service.Refresh(); AppConfig = CreateAppConfig(); HostName = AppConfig.Read(ServiceControlSettings.HostName, "localhost"); Port = AppConfig.Read(ServiceControlSettings.Port, 33333); DatabaseMaintenancePort = AppConfig.Read <int?>(ServiceControlSettings.DatabaseMaintenancePort, null); VirtualDirectory = AppConfig.Read(ServiceControlSettings.VirtualDirectory, (string)null); LogPath = AppConfig.Read(ServiceControlSettings.LogPath, DefaultLogPath()); DBPath = AppConfig.Read(ServiceControlSettings.DBPath, DefaultDBPath()); AuditQueue = AppConfig.Read(ServiceControlSettings.AuditQueue, (string)null); InMaintenanceMode = AppConfig.Read(ServiceControlSettings.MaintenanceMode, false); ErrorQueue = AppConfig.Read(ServiceControlSettings.ErrorQueue, "error"); TransportPackage = DetermineTransportPackage(); ConnectionString = ReadConnectionString(); Description = GetDescription(); ServiceAccount = Service.Account; ForwardErrorMessages = AppConfig.Read(ServiceControlSettings.ForwardErrorMessages, false); if (ForwardErrorMessages) { ErrorLogQueue = AppConfig.Read(ServiceControlSettings.ErrorLogQueue, $"{ErrorQueue}.log"); } ForwardAuditMessages = AppConfig.Read(ServiceControlSettings.ForwardAuditMessages, false); if (ForwardAuditMessages) { AuditLogQueue = AppConfig.Read(ServiceControlSettings.AuditLogQueue, string.IsNullOrEmpty(AuditQueue) ? null : $"{AuditQueue}.log"); } if (TimeSpan.TryParse(AppConfig.Read(ServiceControlSettings.ErrorRetentionPeriod, (string)null), out var errorRetentionPeriod)) { ErrorRetentionPeriod = errorRetentionPeriod; } if (TimeSpan.TryParse(AppConfig.Read(ServiceControlSettings.AuditRetentionPeriod, (string)null), out var auditRetentionPeriod)) { AuditRetentionPeriod = auditRetentionPeriod; } var remoteInstancesString = AppConfig.Read(ServiceControlSettings.RemoteInstances, default(string)); if (!string.IsNullOrWhiteSpace(remoteInstancesString)) { RemoteInstances = RemoteInstanceConverter.FromJson(remoteInstancesString); } }
protected override void ApplySettingsChanges(KeyValueConfigurationCollection settings) { if (!ForwardErrorMessages) { ErrorLogQueue = null; } if (!ForwardAuditMessages) { AuditLogQueue = null; } settings.Set(ServiceControlSettings.HostName, HostName); settings.Set(ServiceControlSettings.Port, Port.ToString()); settings.Set(ServiceControlSettings.DatabaseMaintenancePort, DatabaseMaintenancePort.ToString(), Version); settings.Set(ServiceControlSettings.LogPath, LogPath); settings.Set(ServiceControlSettings.ForwardAuditMessages, ForwardAuditMessages.ToString(), Version); settings.Set(ServiceControlSettings.ForwardErrorMessages, ForwardErrorMessages.ToString(), Version); settings.Set(ServiceControlSettings.AuditRetentionPeriod, AuditRetentionPeriod.ToString(), Version); settings.Set(ServiceControlSettings.ErrorRetentionPeriod, ErrorRetentionPeriod.ToString(), Version); settings.RemoveIfRetired(ServiceControlSettings.HoursToKeepMessagesBeforeExpiring, Version); settings.Set(ServiceControlSettings.AuditQueue, AuditQueue, Version); settings.Set(ServiceControlSettings.ErrorQueue, ErrorQueue); settings.Set(ServiceControlSettings.AuditLogQueue, AuditLogQueue, Version); settings.Set(ServiceControlSettings.ErrorLogQueue, ErrorLogQueue, Version); if (RemoteInstances != null) { if (Compatibility.RemoteInstancesDoNotNeedQueueAddress.SupportedFrom <= Version) { foreach (var instance in RemoteInstances) { instance.QueueAddress = null; } } settings.Set(ServiceControlSettings.RemoteInstances, RemoteInstanceConverter.ToJson(RemoteInstances), Version); } }