Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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
C# StackExchange.Redis:没有可用于服务此操作的连接。无法在主机上连接:端口/交互_C#_Asp.net Core_Google Cloud Platform_Redis_Google Cloud Memorystore - Fatal编程技术网

C# StackExchange.Redis:没有可用于服务此操作的连接。无法在主机上连接:端口/交互

C# StackExchange.Redis:没有可用于服务此操作的连接。无法在主机上连接:端口/交互,c#,asp.net-core,google-cloud-platform,redis,google-cloud-memorystore,C#,Asp.net Core,Google Cloud Platform,Redis,Google Cloud Memorystore,我正在尝试从C#连接REDIS数据库(GCP memorystore REDIS)。在将值设置为Redis时,我遇到了如下异常: 没有可用于此操作的连接。无法连接10.0.0.2:6379/交互,初始化,最后:无,来源:BeginConnect异步,未完成:0,上次读取:10秒前,最后写入:10秒前,未响应写入:115s前,保持活动状态:180s,状态:连接,管理器:10/10可用,最后心跳:从不,全局:0秒前,v:2.0.519.65453;IOCP:(忙=0,空闲=1000,最小=1,最大=

我正在尝试从C#连接REDIS数据库(GCP memorystore REDIS)。在将值设置为Redis时,我遇到了如下异常:

没有可用于此操作的连接。无法连接10.0.0.2:6379/交互,初始化,最后:无,来源:BeginConnect异步,未完成:0,上次读取:10秒前,最后写入:10秒前,未响应写入:115s前,保持活动状态:180s,状态:连接,管理器:10/10可用,最后心跳:从不,全局:0秒前,v:2.0.519.65453;IOCP:(忙=0,空闲=1000,最小=1,最大=1000),工作线程:(忙=1,空闲=32766,最小=1,最大=32767),本地CPU:n/a

我正在使用StackExchange.Redis版本:2.0.519

代码:

(或者)我也尝试使用下面的代码来设置值。(得到同样的问题)


您能在这方面提供帮助吗。

您的ConnectionMultiplexer connectionstring中的变量“host”似乎不正确。查看您的异常“无法连接IPAddress:6379/Interactive”。因此,变量“port”是正确的,它的值为6379。也许您的“主机”变量到字符串的转换是错误的。因此,变量类型(IPAddress)而不是实际值。

看起来这可能主要是一个格式/连接问题,在这种情况下,最简单的方法是:不要这样做。有一种强类型对象模型,很难出错:

var config=新配置选项{
端点={
新的DnsEndPoint(主机、端口),

//新建IPEndPoint(主机、端口),//好吧,它能连接吗?abortConnect=False有时很有用,但在这种情况下,我会说“现在就把它拿走”,这样如果它不能连接,它会更快停止。redis cli连接成功吗?这里涉及TLS吗?注意:我看到过“redis like”数据库无法成功地实现redis的全部特性-我还没有明确针对memorystore进行测试,我需要看看他们是否可以提供免费服务供我再次测试(坦率地说:我并没有自费提供免费支持)@MarcGravel:我在redisDB.StringSet(“RedisKey”,“RedisValue”)上遇到错误.在redis.GetDatabase()处未获取错误;因此,这意味着与Redis成功连接。我是吗?
GetDatabase
几乎什么都不做;它不与服务器通信;有趣的操作是
Connect
,和
GetString
——但是当你添加
abortConnect=False
时,你告诉
Connect
假装连接良好。长话短说(太晚了):不,代码中没有任何内容表明您已“成功连接Redis”,例外情况强烈建议您没有。请指出您尝试连接到REDIS的位置。从Compute Engine连接与从App Engine或Kubernetes连接不同。感谢您的回复。此处的IPAddress表示,我正在传递“我的REDIS服务ip(10.0.0.4)”,因此我遇到如下错误“无法连接10.0.0.4:6379/交互式”
               IDatabase redisDB;
                try {
                    ConnectionMultiplexer redis = ConnectionMultiplexer.Connect($"{host}:{port},resolvedns=1,abortConnect=False,keepAlive=180,connectTimeout=10000");
                   
                    redisDB = redis.GetDatabase();
                    
                    if(redisDB==null)
                    {
                     **//Getting Error**
                      var messageId = redisDB.StreamAdd("event_stream", "foo_name", "bar_value");
                     //redisDB.StringSet("RedisKey", "RedisValue");
                    }
                  }
redisDB.StringSet("RedisKey", "RedisValue");