Azure Cosmos DB for MongoDB (vCore) 连接字符串无效异常

问题描述 投票:0回答:1

我已经为 mongoDB vcore 数据库设置了一个免费的 cosmos DB,没有任何问题,然后我就能够利用提供的连接字符串通过我在 MongoDBCompass 和 Azure Data Studio 上的凭据连接到数据库,以确认该字符串正在工作并允许访问有问题的数据库。

但是,当我在 .Net 8 C# 应用程序中使用给定的字符串与 MongoDb.Driver 并插入正确的用户名和密码时 每次尝试设置客户端时,我都会收到以下异常:

MongoDB.Driver.MongoConfigurationException:连接字符串“mongodb+srv://@mongodb-test.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000”无效。

填充客户端的代码是:

public NetworkService(IOptions<MongoDBSettings> mongoDBSettings)
 {
    _client = new MongoClient(mongoDBSettings.Value.ConnectionLocal);
 }

我已经仔细检查了 mongoDBSettings.Value.ConnectionLocal 属性,并且使用 azure cosmos db 给出的正确字符串填充,因此我不确定为什么会收到此错误,指出该字符串无效。

当我将 ConnectionLocal 字符串指向本地 mongodb 数据库时,此代码也执行得非常好,并且 API 都按预期工作:

“ConnectionLocal”:“mongodb://localhost:27017/”,

mongodb azure azure-cosmosdb azure-cosmosdb-mongovcore
1个回答
0
投票

找出问题所在 - 我的密码中有一个 @ 符号,看起来客户端设置失败,因为它使用此符号来表示密码在预期的 @ 之前结束

将符号编码为 %40 解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.