我在远程Windows服务器上运行Cassandra 1.2.1。我将yaml设置设置如下:
rpc_address:0.0.0.0 start_native_transport:true
我可以通过输入IP地址和端口号从笔记本电脑连接远程Cassandra服务器;
连接XXX.XX.XX.XX / 9160;
on cassandra-cli.bat
但我不能从我的.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>
应用程序抛出“找不到任何有效端点”异常。当我在本地运行Cassandra并尝试连接时,此代码块完美无缺。
在远程服务器上,防火墙允许使用9160和7000端口。对这个问题有什么看法吗?
答案 0 :(得分:4)
@rs_atl是对的,这是一个连接问题。
如果您正在使用客户端库并要执行CQL命令,则需要设置;
start_native_transport: true
你已经做过的。下面只有两行,你会看到;
native_transport_port: 9042
在yaml文件中。这意味着您需要在防火墙上允许端口号 9042 。
如果您还使用Azure等云服务,请不要忘记添加端点。
答案 1 :(得分:0)
如果您的代码在本地运行但在另一台机器上不起作用,唯一合乎逻辑的结论是必须存在连接问题。