启用身份验证时如何使用C#驱动程序复制MongoDb数据库

时间:2017-01-25 10:02:08

标签: c# mongodb

在这篇文章中[使用C#驱动程序复制mongo数据库] [1]描述了使用新的Mongo C#驱动程序复制数据库的解决方案。

我的身份验证问题,我在mongodb中设置了授权,现在如果我从RoboMongo发出一个copydatabase一切正常,但如果我尝试从C#Driver运行命令我得到

MongoDB.Driver.MongoCommandException: 'Command copydb failed: 
listCollections failed: { ok: 0.0, errmsg: "not authorized on xxxxx 
to execute command { listCollections: 1, filter: {}, cursor: {} }", 
code: 13 }.'

我想知道为什么copy database命令在RoboMongo中与同一用户一起使用,但在C#代码执行时失败并带有授权。

1 个答案:

答案 0 :(得分:0)

实际上我找到了原因而且非常奇怪,你只需要从命令中删除fromDb参数。

var command = String.Format(@"{{ copydb: 1, fromdb: '{0}', todb: '{1}'}}", sourceUrl.DatabaseName, destinationUrl.DatabaseName);

我已经使用了上面的命令,我只指定fromDb和toDb,一切正常。可能是fromDb:' localhost'由于某种原因搞砸了身份验证。

吉安玛丽亚。