1

リモートのWindowsサーバーでCassandra1.2.1を実行しています。yaml設定を次のように設定しました。

rpc_address:0.0.0.0 start_native_transport:true

IPアドレスとポート番号を入力することで、ラップトップからリモートCassandraサーバーに接続できます。

XXX.XX.XX.XX/9160を接続します。

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ポートが許可されます。問題について何か考えはありますか?

4

2 に答える 2

4

@rs_atlは正しいです、それは接続の問題です。

クライアントライブラリを使用していてCQLコマンドを実行する場合は、以下を設定する必要があります。

start_native_transport: true

あなたはすでにそれをしました。下の2行だけで、次のように表示されます。

native_transport_port: 9042

yamlファイルで。つまり、ファイアウォールでポート番号9042を許可する必要があります。

Azureなどのクラウドサービスも使用している場合は、エンドポイントを追加することを忘れないでください。

于 2013-02-06T16:30:30.263 に答える
0

コードがローカルで機能するが、別のマシンでは機能しない場合、唯一の論理的な結論は、接続の問題があるはずです。

于 2013-02-06T15:08:44.533 に答える