无法在Azure上授权MongoLab服务

时间:2013-05-24 16:36:03

标签: mongodb azure mlab

我已经通过Azure Cloud上的MongoLab插件创建了Mongodb数据库。我已经能够连接到数据库,但我总是得到以下异常;

  

命令'count'失败:db断言失败(响应:{“断言”   :“未授权的db:YourDefinition ns:YourDefinition.Terms锁定类型:1   客户端:94.245.107.14“,”assertionCode“:10057,”errmsg“:”db   断言失败“,”ok“:0.0}}

我怎样摆脱这个问题?

更新:

这是我的连接字符串

  

“的mongodb:// YourDefinitionDB:hQIkxfNlgF8rp6o6zb4KDVe_t8RILePrBLPieIvWS1M-@ds045087.mongolab.com:45087 / YourDefinitionDB”

我使用了错误的数据库名称但仍然遇到异常。

  

命令'authenticate'失败:auth失败(响应:{“errmsg”:   “auth failed”,“ok”:0.0})

我可以说它适用于外部gui但不适用于.net驱动程序。

3 个答案:

答案 0 :(得分:3)

本指南可帮助您启动并运行:https://www.windowsazure.com/en-us/develop/net/tutorials/website-with-mongodb-mongolab/

特别是这些代码片段:

private string connectionString = System.Environment.GetEnvironmentVariable("CUSTOMCONNSTR_MONGOLAB_URI");
private string dbName = "myMongoApp";

MongoServer server = MongoServer.Create(connectionString);
MongoDatabase database = server[dbName];

您只需将"CUSTOMCONNSTR_MONGOLAB_URI"环境变量设置为MongoLab URI即可。例如:

mongodb://<dbuser>:<dbpassword>@<host_name>.mongolab.com:<port>/<db_name>

编辑:刚刚注意到您的更新包含连接字符串。看起来你错过了db部分。请参阅上面的示例连接字符串。

答案 1 :(得分:0)

初始化连接时,需要为数据库提供凭据。登录到mongolab或通过azure找到它们(不确定它们是如何设置的)并在尝试对数据库进行操作之前提供它们。

答案 2 :(得分:0)

  

“的mongodb:// <强> YourDefinitionDB :hQIkxfNlgF8rp6o6zb4KDVe_t8RILePrBLPieIvWS1M-@ds045087.mongolab.com:45087 /的 YourDefinitionDB

您的连接字符串(假设它反映了您的真实连接字符串的外观)是两次显示数据库名称。格式应为:

mongodb://username:password@server.mongolab.com:port/database