我在远程Windows服务器上运行Cassandra 1.2.1 . 我将yaml设置设置如下;
rpc_address:0.0.0.0 start_native_transport:true
I can 通过键入IP地址和端口号从我的笔记本电脑连接远程Cassandra服务器;
连接XXX.XX.XX.XX / 9160;
在cassandra-cli.bat上
But I can not 从我的.Net应用程序连接远程Cassandra服务器 . 我用casssandra-sharp;
XmlConfigurator.Configure();
using (ICluster cluster = ClusterManager.GetCluster("main"))
Console.WriteLine("succeded");
ClusterManager.Shutdown();
这是App.config;
<configSections>
<section name="CassandraSharp" type="CassandraSharp.SectionHandler, CassandraSharp" />
</configSections>
<CassandraSharp>
<Cluster name="main">
<Endpoints>
<Server>XXX.XX.XX.XX</Server>
</Endpoints>
</Cluster>
</CassandraSharp>
应用程序抛出“找不到任何有效 endpoints ”异常 . 当我在本地运行Cassandra并尝试连接时,这个代码块完美地工作 .
在远程服务器上,防火墙允许使用9160和7000端口 . 对这个问题有什么看法吗?
2 回答
@rs_atl是对的,这是一个连接问题 .
如果您正在使用客户端库并要执行CQL命令,则需要设置;
你已经做过了 . 下面只有两行,你会看到;
在yaml文件中 . 这意味着您需要在防火墙上允许端口号 9042 .
如果您还使用Azure等 Cloud 服务,请不要忘记添加 endpoints .
如果您的代码在本地工作但在另一台机器上不起作用,唯一合乎逻辑的结论是必须存在连接问题 .