捕获Microsoft.Extensions.Caching.Redis连接失败?

时间:2017-05-26 10:56:11

标签: c# asp.net caching redis asp.net-core

我需要将Microsoft.Extensions.Caching.Redis用于我的asp.net核心项目。

我将此代码放入ConfigureService(Startup.cs):

IDistributedCache cache = new RedisCache(new RedisCacheOptions
{
    Configuration = Configuration.GetConnectionString("Redis"),
    InstanceName = "Master"
});

services.AddSingleton<IDistributedCache>(cache);

我需要的是捕获一个连接异常(如果Redis服务器已关闭,或者服务器无法访问),但是我还没有找到检查连接的方法,以及是否将代码包装到try / catch中没有任何反应。

有没有办法完成我的任务?

由于

1 个答案:

答案 0 :(得分:1)

在此步骤中,您尚未打开与Redis的连接,您只创建了RedisCache类的实例。

稍后当您使用该类的公共方法时,将打开该连接。像RedisCache.GetAsync方法那样的例子:

// IDistributedCache  _cache;
// ...
// This is the place where you may get the exception
var value = await _cache.GetAsync(key);

此处将使用私有Connect方法在内部创建连接(如果需要)。