我已经通过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驱动程序。
答案 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