internal ConfigurationOptions GetConfigurationOptions() { ConfigurationOptions configurationOptions = new ConfigurationOptions() { ClientName = ClientName, ServiceName = ServiceName, KeepAlive = KeepAlive.GetValueOrDefault(-1), SyncTimeout = SyncTimeout.GetValueOrDefault(1000), AllowAdmin = AllowAdmin.GetValueOrDefault(), Password = Password, TieBreaker = TieBreaker ?? "__Booksleeve_TieBreak", WriteBuffer = WriteBuffer.GetValueOrDefault(4096), Ssl = Ssl.GetValueOrDefault(), SslHost = SslHost, HighPrioritySocketThreads = HighPrioritySocketThreads ?? true, ConfigurationChannel = ConfigChannel, ResolveDns = ResolveDns.GetValueOrDefault(), CommandMap = CommandMap, ChannelPrefix = ChannelPrefix, ConnectRetry = ConnectRetry ?? 3, ConfigCheckSeconds = ConfigCheckSeconds.GetValueOrDefault(60), DefaultDatabase = DefaultDatabase, ReconnectRetryPolicy = ReconnectRetryPolicy, SslProtocols = this.SslProtocols }; foreach (var server in Servers) { configurationOptions.EndPoints.Add(server); } configurationOptions.ConnectTimeout = ConnectTimeout ?? Math.Max(5000, configurationOptions.SyncTimeout); configurationOptions.ResponseTimeout = ResponseTimeout ?? configurationOptions.SyncTimeout; configurationOptions.AbortOnConnectFail = AbortConnect ?? GetDefaultAbortOnConnectFailSetting(configurationOptions.EndPoints); if (Enum.TryParse <Proxy>(Proxy, true, out var proxy)) { configurationOptions.Proxy = proxy; } return(configurationOptions); }