Выполнение пропущено при отладке с использованием Stackexchange.redis и функции Azure. - PullRequest
0 голосов
/ 16 сентября 2018

Я использую приведенный ниже код и во время отладки в vs2017 и пытаюсь войти в строку кода, которая получает кэш, он пропустит оставшийся код и начнет выполнять следующее сообщение без каких-либо исключений.Я использую это с лазурной функцией.Интересно, что он прекрасно работает при развертывании на портале, без ошибок.Но я просто не могу заставить его правильно отладить локально.Я использую версию Redis 1.2.6.Пришлось перейти на эту версию, иначе мы получим ошибки соединения.Также, если я не использую функцию Azure, я могу отлаживать просто отлично.Кто-нибудь испытал это?Спасибо за любой указатель.

Как я его использую:

 var cacheValue = _redisCache.GetString(cacheKey);
 if (cacheValue != null)  // this code is never reached while debugging

Компонент:

    private static ConfigurationOptions _configurationOptions;
  private readonly CachePrefix _prefix;

  public RedisCache(ConfigurationOptions configurationOptions, CachePrefix prefix)
  {
    if (configurationOptions == null) throw new ArgumentNullException("configurationOptions");
    _configurationOptions = configurationOptions;
    _prefix = prefix;
  }


  private static IDatabase Cache
  {
    get
    {
      return Connection.GetDatabase();
    }
  }

  private static readonly Lazy<ConnectionMultiplexer> LazyConnection 
    = new Lazy<ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(_configurationOptions));

  public static ConnectionMultiplexer Connection
  {
    get
    {
      return LazyConnection.Value;
    }
  }

public string GetString(string key)
    {
        if (key == null) throw new ArgumentNullException("key");
        var value = Cache.StringGet(key);

        return value.ToString();  // this is where it will execute but then skip remaining code
    }
...