2016-03-01 129 views
2

我在使用asp.net csharp查询cassandra列家族时出现以下错误。我卡桑德拉版本为1.2.1卡桑德拉与c#

型 'Cassandra.ProtocolErrorException' 未处理的异常 发生在Cassandra.dll

其他信息:未知码10一致性水平

请建议该决议。

+0

您使用的是什么cassandra驱动程序库和版本?从错误消息看,您的客户端驱动程序和服务器协议不匹配。 –

+0

这是CassandraCSharpDriver.3.0.2 –

回答

2

我想你需要在创建集群实例时明确指定协议版本为1。 C#驱动程序的v3相当新,而cassandra服务器的v1.2.1很旧。有关详细信息,请查看这个官方文档: http://docs.datastax.com/en/developer/csharp-driver/3.0/common/drivers/introduction/driverDependencies_r.html?scroll=reference_ds_a1z_m5f_5j__build-environment-dependencies-section

+0

我已经这样做了: cluster = Cluster.Builder()。WithPort(9042).AddContactPoint(“127.0.0.1”)。WithMaxProtocolVersion(1).Build(); ISession session = cluster.Connect(“Demo”); –

+0

在对客户端驱动程序V3进行任何猜测之前,我会建议你是否可以先尝试使用c#驱动程序的旧版本(V1)。驱动程序的V1通常会使用cassandra服务器的V1进行更多测试。我也使用了驱动程序的V2和Cassandra服务器的V1和V2一起工作。 –

+0

我已经降级到CassandraCSharpDriver.2.7.0现在的错误更改为: 型“Cassandra.InvalidQueryException”未处理的异常发生在Cassandra.dll 附加信息:未配置的ColumnFamily用户 ,用户是我的专栏的家庭。任何帮助? –

1

的问题可能是,默认情况下的C#驱动程序使用LOCAL_ONE一致性水平和泰迪马表明,1.2.1是一个老版本不支持它。

Cassandra 1.2.12是支持LOCAL_ONE(0x10 CL)的C *的第一个版本。最近这里的蟒蛇名单上

更多讨论:https://groups.google.com/a/lists.datastax.com/forum/#!topic/python-driver-user/iBT4W-Ne2y4

我很好奇,关于这个问题,我还以为C * 1.2支持LOCAL_ONE。我发现LOCAL_ONE直到Cassandra 1.2.11才被添加,并添加了错误的代码(0x8而不是0x10)。这在1.2.12中由CASSANDRA-6347修复。

您可以通过QueryOptions明确设定之间的一致性程度解决这个问题,或者通过升级到卡桑德拉的新版本(如果你要留在1.2,使用1.2.19)。