问题描述
我是 Apache Cassandra 数据库 Astra Datastax 的新手。我们创建了一个简单的 astra.net 核心 API,使用安全连接包(带有证书和其他信息的 Zip 文件)使用来自 Astra DataStax 的数据库。它在本地按预期工作,但是,当发布到 azure 应用服务时,它不起作用,但会引发以下错误。
应用程序抛出了一个未处理的异常。异常:System.AggregateException:发生一个或多个错误。 (从云元数据服务 (https://yourdb.db.astra.datastax.com:31977/metadata) 获取元数据信息时出错。请确保您的集群未停放或终止。有关更多详细信息,请参阅内部异常。)---> Cassandra.NoHostAvailableException: There从云元数据服务获取元数据信息时出错
我们已经检查了正在运行的数据库(未停放或终止)并且从本地连接时没有问题。
private async Task<ISession> ConnectToAstra(string username,string password,string keyspace,string secureConnectBundlePath)
{
var session = await Cluster.Builder()
.WithCloudSecureConnectionBundle(secureConnectBundlePath)
.WithCredentials(username,password)
.WithQueryOptions(new QueryOptions().SetConsistencyLevel(ConsistencyLevel.LocalQuorum))
.Build()
.ConnectAsync(keyspace);
return session;
}
注意:在 Azure 应用服务中发布后,我们已经验证了包的路径,也尝试将安全包移动到 wwwroot 文件夹,但没有成功。
任何帮助/指导都将帮助我们前进。
干杯!!
解决方法
您发布的错误表明您的应用无法访问任何 Astra 节点,因此无法获取架构和拓扑等集群元数据。
这很可能是您的应用和 Astra 实例的网络连接问题。请注意,VPC 对等互连仅适用于 Classic Astra databases,不适用于开发和测试数据库。
如果您提供有关“从本地连接时没有问题”的含义的更多信息,它将为我们提供更多见解,我很乐意更新我的答案。干杯!