您好,我正在使用Redis,并且在使用本地主机以外的域时无法连接到它。
StackExchange.Redis.RedisConnectionException:'没有连接 可用于此操作的服务:HEXISTS文件;无法连接 [someDomain.com]:6379 /交互式,正在初始化/未启动, 最后:无,来源:BeginConnectAsync,未完成:0,最后读取:1秒 前一次,最后写入:1秒前,保持活动状态:60秒,状态:正在连接,mgr:10 之10,可用,最后一次心跳:永不,全局:0s之前,v: 2.0.593.37019; IOCP:(忙= 0,空闲= 1000,最小值= 8,最大值= 1000),工作人员:(忙= 0,空闲= 32767,最小值= 8,最大值= 32767),本地CPU:n / a'>
多路复用器连接,并且标记IsConnecting
为false。因此连接已完成。
class Program {
// public const string CON = "127.0.0.1:6379,ssl=False,allowAdmin=True,abortConnect=False,defaultDatabase=0";
public const string CON = "someDomain.com:6379,ssl=False,allowAdmin=True,abortConnect=False,defaultDatabase=0";
public static async Task<bool> LockFileForEditAsync(int fileId) {
var multiplexer = ConnectionMultiplexer.Connect(CON);
var flag = multiplexer.IsConnecting;
var database = multiplexer.GetDatabase();
var exists = await database.HashExistsAsync("files", fileId); //crashes here !!
return false;
}
static async Task Main(string[] args) {
int fid = 1;
var locked = await LockFileForEditAsync(fid);
}
}
PS 我已经检查了有关thread theft的线程,但找不到解决方案。 那么,为什么在本地主机上而不是从另一台计算机连接到同一redis服务器会起作用?
答案 0 :(得分:0)
尝试在Redis服务器的配置文件中查找此行
bind 127.0.0.1
如果找到,将其注释掉并重新启动Redis服务器。