mad*_*moe 1 azure redis stackexchange.redis
我永远无法将字符串值存储到 Azure 托管的 Redis 缓存。使用 StackExchange.Redis 版本 2.0.601 和 vs2015 和 vs2019。下面的代码在注释中有错误(基本上即使成功 ConnectionMultiplexer.Connect 也没有建立连接)。
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;
}
Run Code Online (Sandbox Code Playgroud)
最后尝试/捕获 db.StringSet 方法时出错。我收到这条消息:
没有连接可用于服务此操作:SET mykey; 阻塞操作被调用 WSACancelBlockingCall 中断;IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=2,Free=1021,Min=4,Max=1023), Local-CPU: n/a
小智 7
我在 Azure Redis 缓存上将最低 TLS 版本设置为 1.2 时遇到了同样的错误,这是由 TLS 不匹配引起的。通过以下措施解决。
sslprotocols=tls12到连接字符串TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384到 TLS 密码套件这是详细信息,从 Azure Redis 缓存中删除 TLS 1.0 和 1.1
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |