Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RedisConnectionException:没有可用于服务此操作的连接:EVAL_Redis_Stackexchange.redis_Azure Redis Cache - Fatal编程技术网

RedisConnectionException:没有可用于服务此操作的连接:EVAL

RedisConnectionException:没有可用于服务此操作的连接:EVAL,redis,stackexchange.redis,azure-redis-cache,Redis,Stackexchange.redis,Azure Redis Cache,我正在尝试在ASP.NET WebForms应用程序(4.7.2)中实现Redis。我从下载了SessionProvider源代码。我正在使用StackExchange.Redis 2.0+ 执行登录后,将抛出此错误: 显然,有人试图eval一些Lua脚本,但失败了(这是关闭该脚本的结论) 因此,假设这个假设是正确的,我提取了有问题的脚本,并使用rediscli--eval以及键和参数运行它 local retArray = {} local lockValue = ARGV[1] loc

我正在尝试在ASP.NET WebForms应用程序(4.7.2)中实现Redis。我从下载了SessionProvider源代码。我正在使用StackExchange.Redis 2.0+

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

显然,有人试图
eval
一些Lua脚本,但失败了(这是关闭该脚本的结论)

因此,假设这个假设是正确的,我提取了有问题的脚本,并使用
rediscli--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
这是成功的

是否存在可能引发此异常的其他问题


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

我试图研究您的问题,然后我发现GitHub
StackExchange/StackExchange.Redis
repo的问题似乎与您的问题相同

根据GitHub问题底部的注释,另一个问题是,
2.0
下的版本有一些bug需要修复,比如
网络连接稳定性问题


因此,我建议您可以将当前的
StackExchange.Redis(V1.2.6)
升级到最新的稳定
2.x
版本,然后重试您的代码。同时,请注意,Azure/aspnet redis providers的
功能,以制作正确且兼容的版本来支持您当前的代码。

遗憾的是,2.+软件包还存在我无法解决的其他问题(请参阅)。简而言之,即使使用Nuget下载软件包和依赖项,它仍然无法找到某些特定版本的DLL(例如,
System.Memory
)更新到2.0+软件包,现在我遇到了完全相同的问题:(