【发布时间】:2015-03-04 23:34:56
【问题描述】:
我在 Azure 服务器上安装了一个 MongoDB 3.0.0 实例,并在 admin db 上创建了一个用户:
{
"_id" : "admin.skMongo",
"user" : "skMongo",
"db" : "admin",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : NumberInt(10000),
"salt" : "(someSalt)",
"storedKey" : "(somekey)",
"serverKey" : "(somekey)"
}
},
"customData" : {
},
"roles" : [
{
"role" : "dbOwner",
"db" : "(my database)"
},
{
"role" : "readWrite",
"db" : "(my database)"
},
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
}
]
}
通过使用 MongoChef 作为客户端,我可以连接到这个实例而不会遇到问题。我正在使用这些设置:
Server: (my ip address)
Port: 27017
Database: admin
Username: skMongo
Password: (mypassword)
但是当我尝试使用官方 C# MongoDB Driver 1.10.0.62 进行连接时,我收到此错误:
无法连接到服务器 23.97.171.16:27017:凭据无效 数据库'管理员'..
在这一行:
return collection.Find(q).ToList();
这是我用来初始化 mongo db 服务器的代码:
var credentials = MongoCredential.CreateMongoCRCredential("admin", "skMongo", "(my password)");
_server = new MongoServer(
new MongoServerSettings
{
Server = string.IsNullOrEmpty(port) ? new MongoServerAddress(host) : new MongoServerAddress(host, int.Parse(port)),
Credentials = new[] { credentials },
});
_database = _server.GetDatabase("(my database)");
return _database;
此代码适用于以前版本的 mongo。我做错了什么?
【问题讨论】: