Support IP address connection string in Basket.API
Dns.GetHostAddressesAsync can return problematic results when passed an IP address, and if the connection string is already an IP address, we needn't call it anyway.
This commit is contained in:
parent
2f3df2715d
commit
eba2ea8bf9
@ -94,13 +94,21 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model
|
|||||||
|
|
||||||
private async Task ConnectToRedisAsync()
|
private async Task ConnectToRedisAsync()
|
||||||
{
|
{
|
||||||
//TODO: Need to make this more robust. Also want to understand why the static connection method cannot accept dns names.
|
// TODO: Need to make this more robust. ConnectionMultiplexer.ConnectAsync doesn't like domain names or IPv6 addresses.
|
||||||
var ips = await Dns.GetHostAddressesAsync(_settings.ConnectionString);
|
if (IPAddress.TryParse(_settings.ConnectionString, out var ip))
|
||||||
_logger.LogInformation($"Connecting to database {_settings.ConnectionString} at IP {ips.First().ToString()}");
|
{
|
||||||
_redis = await ConnectionMultiplexer.ConnectAsync(ips.First().ToString());
|
_redis = await ConnectionMultiplexer.ConnectAsync(ip.ToString());
|
||||||
|
_logger.LogInformation($"Connecting to database at {_settings.ConnectionString}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// workaround for https://github.com/StackExchange/StackExchange.Redis/issues/410
|
||||||
|
var ips = await Dns.GetHostAddressesAsync(_settings.ConnectionString);
|
||||||
|
_logger.LogInformation($"Connecting to database {_settings.ConnectionString} at IP {ips.First().ToString()}");
|
||||||
|
_redis = await ConnectionMultiplexer.ConnectAsync(ips.First().ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user