В моем. NET Framework 4.6.1 приложении я использую StackExchange.Redis.StrongName 1.2.6 для подключения к Azure Redis. Это код
public RedisContext(string connectionString = null)
{
if (connectionString == null) return;
Lazy<ConfigurationOptions> lazyConfiguration
= new Lazy<ConfigurationOptions>(() => ConfigurationOptions.Parse(connectionString));
var configuration = lazyConfiguration.Value;
configuration.SslProtocols = SslProtocols.Tls12;//just added
configuration.AbortOnConnectFail = false;
Lazy<ConnectionMultiplexer> lazyConnection =
new Lazy<ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(configuration));
_connectionMultiplexer = lazyConnection.Value;
LogProvider.IsDisabled = true;
var connectionEndpoints = _connectionMultiplexer.GetEndPoints();
_lockFactory = new RedisLockFactory(connectionEndpoints.Select(endpoint => new RedisLockEndPoint
{
EndPoint = endpoint,
Password = configuration.Password,
Ssl = configuration.Ssl
}));
}
В Azure я изменил ресурс Redis для использования TLS1.2, и в коде я добавил эту строку:
configuration.SslProtocols = SslProtocols. Tls12; // только что добавил
И теперь уже ничего не работает. Это ошибка, которую я получаю в Application Insights:
Ошибка подключения к Redis. Не удалось подключиться к серверу (-ам) redis; ConnectTimeout
Я также пытался добавить ", ssl = True, sslprotocols = tls12" в строку подключения Redis, но с тем же результатом.