Не удается установить соединение между приложением службы Azure и Redis

Я пытаюсь установить соединение между веб-приложением azure для контейнеров и базой данных redis. Я создал базу данных Redis, используя redislabs (Redis Enterprise Cloud, размещенный в Azure) и бесплатный план подписки.

Я могу подключиться к базе данных Redis со своего локального компьютера, но не могу из контейнера докеров, работающего в Azure. Я не использую шифрование TLS, потому что оно не поддерживается бесплатной подпиской в ​​конфигурации базы данных.

Приложение-служба Azure находится в западной Европе, а Redis в восточной части США.

Мое приложение - asp.net 5, и вот моя конфигурация. (Я использую StackExchange.Redis 5.0.0)

services.AddStackExchangeRedisCache(x =>
                {
                    x.ConfigurationOptions = new ConfigurationOptions
                    {
                        Password = config.Password,
                        EndPoints =
                        {
                            config.ConnectionString
                        },
                        KeepAlive = 180
                    };
                });

Вот ошибка, которая у меня возникает при попытке установить ключ в базе данных.

StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s).  There was an authentication failure; check that passwords (or client certificates) are configured correctly. AuthenticationFailure (None, last-recv: 231) on redis-18894.c251.east-us-mz.azure.cloud.redislabs.com:18894/Interactive, 
Flushed/ComputeResult, last: ECHO, origin: SetResult, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: ConnectedEstablishing, mgr: 9 of 10 available, 
last-heartbeat: never, global: 0s ago, v: 2.0.593.37019  
at StackExchange.Redis.ConnectionMultiplexer.ConnectImplAsync(Object configuration, TextWriter log) 
in C:\projects\stackexchange-redis\src\StackExchange.Redis\ConnectionMultiplexer.cs:line 823
at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.ConnectAsync(CancellationToken token)  
at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.SetAsync(String key, Byte[] value, DistributedCacheEntryOptions options, CancellationToken token)

Возможно, я могу подключиться только с помощью TSL, потому что в настройках TLS / SSL в службе приложений у меня есть Минимальная версия TLS = 1.2

Спасибо!


person Vlad Kuzmich    schedule 17.06.2021    source источник


Ответы (1)


Конфигурация службы приложений абсолютно не связана с тем, как вы подключаетесь к Redis. Убедитесь, что вы используете порт 80 для подключения к Redis. См. this при подключении к redis. using StackExchange.Redis;

только для чтения ConnectionMultiplexer muxer = ConnectionMultiplexer.Connect (имя хоста: порт, пароль = пароль); IDatabase conn = muxer.GetDatabase ();

person Rohit Tatiya    schedule 19.06.2021