3

我是 Apache Cassandra 数据库 Astra Datastax 的新手。我们创建了一个简单的 asp.net 核心 API,以使用安全连接包(带有证书和其他信息的 Zip 文件)使用来自 Astra DataStax 的数据库。它按预期在本地工作,但是,当发布到 azure app 服务时它不起作用,但抛出以下错误。

应用程序引发了未处理的异常。异常:System.AggregateException:发生一个或多个错误。(从云元数据服务 ( https://yourdb.db.astra.datastax.com:31977/metadata ) 获取元数据信息时出错。请确保您的集群未停放或终止。有关更多信息,请参阅内部异常详细信息。)---> Cassandra.NoHostAvailableException:从云元数据服务获取元数据信息时出错

我们检查了正在工作的数据库(未停放或终止),从本地连接时没有问题。

这是我们用来连接数据库以建立会话的代码。

 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 App 服务中发布后验证了捆绑包的路径,还尝试将安全捆绑包移动到 wwwroot 文件夹,但没有成功。

任何帮助/指导都将帮助我们前进。

干杯!!

4

1 回答 1

0

您发布的错误表明您的应用无法访问任何 Astra 节点,因此无法获取集群元数据,例如架构和拓扑。

这很可能是您的应用程序和 Astra 实例的网络连接问题。请注意,VPC 对等仅适用于Classic Astra 数据库,不适用于开发和测试数据库。

如果您提供有关“从本地连接时没有问题”的意思的更多信息,它将为我们提供更多见解,我很乐意更新我的答案。干杯!

于 2021-03-07T05:26:41.643 回答