为了账号安全,请及时绑定邮箱和手机立即绑定

SRV 连接字符串时的 MongoConfigurationException

SRV 连接字符串时的 MongoConfigurationException

C#
饮歌长啸 2021-11-21 10:57:01
驱动程序语言 - C#驱动程序版本 - 2.7.0数据库版本 - 4.0.0.NET 框架 4.6.1异常消息(凭据和服务器已删除)连接字符串 'mongodb+srv://USER:PASS@uat-xxxx.mongodb.net/test?retryWrites=true' 无效。代码var client = new MongoClient(@"mongodb+srv://USER:PASS@uat-xxxx.mongodb.net/test?retryWrites=true");用户名和密码不包含特殊字符不会尝试连接到服务器。但是,如果我使用 URI 版本,这可以正常工作var client = new MongoClient(@"mongodb://USER:PASS@uat-shard-00-00-xxxxx.mongodb.net:27017,uat-shard-00-01-xxxxx.mongodb.net:27017,uat-shard-00-02-xxxxx.mongodb.net:27017/test?ssl=true&replicaSet=UAT-shard-0&authSource=admin&retryWrites=true");我试图从源头破译验证规则,但这超出了我的正则表达式能力。srv 连接字符串在我看来很好,与 Mongo Atlas UI 中呈现给我的完全相同。知道我做错了什么吗?
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我试图重现这个使用


var client = new MongoClient("mongodb+srv://USER:PASS@cluster0-xxxx.mongodb.net/test?retryWrites=true");

var dbs = await client.ListDatabaseNames().ToListAsync();

Console.WriteLine(dbs);

这给了我预期的输出(2 个数据库名称)。


我的测试环境是 .NET 4.6.1、LINQPad 和 C# Driver 2.7.0。


您可以尝试使用 Mongo Shell 进行测试,从而从方程式中消除 C# 驱动程序(和框架)。如果您使用的是 Mongo Shell 3.6 或更高版本,则可以使用类似于以下命令的命令测试连接


mongo "mongodb+srv://cluster0-xxxx.mongodb.net/test" --username USER

话虽如此,您应该能够使用 Atlas UI 左侧的“支持”链接为您的 atlas 集群联系 MongoDB 支持。他们应该能够提供帮助。


查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信