Я использую приведенный ниже код и во время отладки в 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
}