【发布时间】:2017-01-31 03:04:21
【问题描述】:
Cassandra 在远程计算机上作为服务运行,但在同一网络中。我还创建了一个与 Cassandra 环境通信的 .net 程序。
当 Cassandra 没有作为具有以下连接字符串的服务运行时,我能够与它通信:
private void Connect()
{
cluster = Cluster.Builder().WithCredentials(username, password).AddContactPoint("192.168.30.104").Build();
session = cluster.Connect("core_meter");
}
但是当我尝试连接到 Cassandra 作为服务运行时,我收到以下错误:
Cassandra.dll 中出现“Cassandra.NoHostAvailableException”类型的未处理异常
附加信息:尝试查询的主机均不可用(尝试:192.168.30.104:9042)
我不确定是否必须更改 .yaml 文件中的任何内容才能使用用户名和密码访问服务。 这是yaml文件:https://www.dropbox.com/s/wbrexlarkjrvlrm/cassandra.yaml?dl=0
编辑:当我在没有用户名和密码的情况下与服务通信时,我可以与服务通信(我总是可以通过命令提示符与执行通信)但是当我使用用户名和密码时,它不再起作用了。
【问题讨论】:
-
在 Windows 上为“侦听端口”检查“资源监视器”或在 Linux 上为两个实例检查“netstat -tnlp”,并检查 9042 是否在 localhost 或 192.168.30.104 上公开
-
如果我是正确的,如果你看到这个错误,你有 Cassandra 在 localhost:9042 上运行
-
@Sreekar 我在服务器上打开了 9042 端口。此外,如果它没有用户名或密码,我可以与该服务通信。对不起,没注意到你和下面是同一个人;)
-
NoHostAvailableException 有一个名为
InnerErrors的属性,其中包含尝试的每个主机的错误,请检查。 -
@jorgebg 是的,我做到了,内部异常 = null
标签: c# service cassandra datastax