gpt4 book ai didi

azure - 使用 StackExchange.Redis 存储到 Azure 托管的 Redis 缓存时出现问题

转载 作者:行者123 更新时间:2023-12-03 06:41:23 25 4
gpt4 key购买 nike

我永远无法将字符串值存储到 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;
}

最后一次 try/catch 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

最佳答案

当我在 Azure Redis 缓存上将最低 TLS 版本设置为 1.2 时,出现了同样的错误,这是由 TLS 不匹配引起的。通过以下措施解决。

  • sslprotocols=tls12 添加到连接字符串
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 添加到 TLS 密码套件

这是详细信息,Remove TLS 1.0 and 1.1 from use with Azure Cache for Redis

关于azure - 使用 StackExchange.Redis 存储到 Azure 托管的 Redis 缓存时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60348287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com