驱动程序语言 - 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 回答
![?](http://img1.sycdn.imooc.com/5458478b0001f01502200220-100-100.jpg)
慕婉清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 支持。他们应该能够提供帮助。
- 1 回答
- 0 关注
- 264 浏览
添加回答
举报
0/150
提交
取消