Rag*_*h S 19 c# replication mongodb nosql mlab
我尝试在Mongolabs中部署我的Mongo数据库,一切正常,我创建了一个新的数据库.请看我的连接字符串.
public DbHelper()
{
MongoClientSettings settings = new MongoClientSettings()
{
Credentials = new MongoCredential[] { MongoCredential.CreateCredential("dbname", "username", "password") },
Server = new MongoServerAddress("ds011111.mongolab.com", 11111),
//ConnectTimeout = new TimeSpan(30000)
};
Server = new MongoClient(settings).GetServer();
DataBase = Server.GetDatabase(DatabaseName);
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试连接数据库时,它显示的错误如下:
Rag*_*h S 14
我正在替换下面的连接字符串方法.
new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name")
Run Code Online (Sandbox Code Playgroud)
现在它已经解决了.
请参阅Paul Lemke的答案.
小智 13
确保您当前的 IP 地址在 mongo db 服务器中列入白名单。如果您更改您的互联网提供商,则需要将新 IP 列入白名单。
Pau*_*mke 12
如果连接到MongoLab,请将"?connect = replicaSet"添加到连接字符串的末尾.
new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name?connect=replicaSet")
Run Code Online (Sandbox Code Playgroud)
这张JIRA票有一些细节:https://jira.mongodb.org/browse/CSHARP-1160
基本上默认是连接到副本集成员.但MongoLab的单节点设置实际上是单节点副本集,这使我们不相信它.将?connect = replicaSet附加到您的连接字符串将强制驱动程序进入副本集模式,所有这些都将起作用.
相同的错误消息,但在 MongoLabs 部署中未遇到。
我刚刚在 Asp.Net Core 应用程序中遇到了标题中列出的相同错误。我的问题是由于 IOC 配置问题造成的。
在我的 IOC 容器中,我的包装 MongoClient 实例配置了依赖瞬态生活方式。
根据 MongoDb C# 驱动程序:
建议将 MongoClient 实例存储在全局位置,作为静态变量或具有单例生命周期的 IoC 容器中。
我将对象的生活方式提升为单例,它解决了问题。
我在用:
请参考 C# 驱动程序客户端部分: http://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/connecting/#re-use
小智 5
确保您的身份验证数据库设置正确。
当我只提到我想连接的数据库时,我遇到了这个问题,而我的 auth db 是不同的(除了 admin db )。
此行中的db-name被视为 auth DB 。
new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name?connect=replicaSet")
Run Code Online (Sandbox Code Playgroud)
然后您可以稍后更改选定的数据库
mDb = mClient.GetDatabase(mongoDBName);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24073 次 |
最近记录: |