Проблема с использованием StackExchange.Redis для хранения в Azure размещенного кэша Redis - PullRequest
0 голосов
/ 22 февраля 2020

Я никогда не могу сохранить строковое значение в Azure размещенном Redis Cache. Использование StackExchange.Redis версии 2.0.601 и vs2015 и vs2019. Приведенный ниже код содержит ошибку в комментариях (в основном даже при успешном подключении ConnectionMultiplexer. Соединение там не установлено).

    static bool Connect()
    {           
        ConnectionMultiplexer redis; 

        try
        {
            ConfigurationOptions cfgOptions = new ConfigurationOptions
            {
                EndPoints =
                {
                    {"RedisOnMyAzureServer", myPort}
                },
                AbortOnConnectFail = false,
                Ssl = true,
                ConnectRetry = 3,
                ConnectTimeout = 10000,
                SyncTimeout = 10000,
                DefaultDatabase = 0,
                Password = "myPassword"
            };
            redis = ConnectionMultiplexer.Connect(cfgOptions);   // takes 10.5 seconds on average 
        }
        catch
        { return false; }  // never errors

        // some diagnostics follow

        if (redis.IsConnected) 
            Console.WriteLine("client connection open"); 
        else
            Console.WriteLine("client connection closed");

        if (redis.GetDatabase().IsConnected(default(RedisKey))) 
            Console.WriteLine("database connection open"); 
        else 
            Console.WriteLine("database connection closed");

        // both connection are always closed.

        try
        {
            IDatabase db = redis.GetDatabase();
            db.StringSet("mykey", "value");
        }
        catch
        { return false; }  // always errors 

        return true;
    }

Ошибки при последней попытке / обнаружении в методе db.StringSet. Я получаю это сообщение:

Нет доступных соединений для обслуживания этой операции: SET mykey; Операция блокировки была прервана вызовом WSACancelBlockingCall; IOCP: (Занято = 0, Свободно = 1000, Мин = 4, Макс = 1000), РАБОЧИЙ: (Занято = 2, Свободно = 1021, Мин = 4, Макс = 1023), Локальный процессор: н / д

...