RedisConnectionException:没有可用的连接来服务这个操作:EVAL

Eri*_* Wu 5 redis stackexchange.redis azure-redis-cache

我正在尝试在 ASP.NET WebForms 应用程序 (4.7.2) 中实现 Redis。我从https://github.com/Azure/aspnet-redis-providers下载了 SessionProvider 源代码。我正在使用 StackExchange.Redis 2.0+ 。

执行登录后,抛出此错误:

在此处输入图片说明

显然,尝试了eval一些Lua脚本,但失败了(这是StackExchange.Redis相关问题关闭的结论)。

所以,假设这个假设是正确的,我提取了有问题的脚本,并redis-cli --eval与键和参数一起运行它。

local retArray = {} 
local lockValue = ARGV[1] 
local locked = redis.call('SETNX',KEYS[1],ARGV[1])        
local IsLocked = true

if locked == 0 then
    lockValue = redis.call('GET',KEYS[1])
else
    redis.call('EXPIRE',KEYS[1],ARGV[2])
    IsLocked = false
end

retArray[1] = lockValue
if lockValue == ARGV[1] then retArray[2] = redis.call('HGETALL',KEYS[2]) else retArray[2] = '' end

local SessionTimeout = redis.call('HGET', KEYS[3], 'SessionTimeout')
if SessionTimeout ~= false then 
    retArray[3] = SessionTimeout 
    redis.call('EXPIRE',KEYS[2], SessionTimeout) 
    redis.call('EXPIRE',KEYS[3], SessionTimeout) 
else 
    retArray[3] = '-1' 
end

retArray[4] = IsLocked
return retArray
Run Code Online (Sandbox Code Playgroud)

它成功了。

在此处输入图片说明

是否还有其他问题可能引发此异常?

编辑:升级到 2.0。仍然遭受同样的问题。