使用Stackexchange.redis和Azure函数调试时跳过执行

时间:2018-09-16 18:21:53

标签: azure redis azure-functions stackexchange.redis

我正在使用下面的代码,并且在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
    }

0 个答案:

没有答案