MongoDB服务器状态为“disconnected”

本文关键字:disconnected 服务器 状态 MongoDB | 更新日期: 2023-09-27 18:05:06

我在Azure上使用安装在VM Ubuntu 14上的MongoDb服务器,我使用这个教程,最后一个版本。我也添加了mongo 27017的端口。我直接连接到它,并添加数据库与一些集合。我使用mongoDb .Net驱动程序在VS2015与版本2.0.1 c#(使用链接)并尝试连接Mongo服务器,但服务器的状态是断开连接

var client = new MongoClient("mongodb://name.cloudapp.net:27017");
var state = client.Cluster.Description.State;
MessageBox.Show(state.ToString());

我之前用过同样的步骤,没有任何反应,只是我不知道问题在哪里

MongoDB服务器状态为“disconnected”

请试试这个。我想这可能有用。只需添加一行来列举所有数据库。

var client = new MongoClient("mongodb://name.cloudapp.net:27017");
var databases = client.ListDatabases();
var state = client.Cluster.Description.State;
MessageBox.Show(state.ToString());

这个答案解释得更好

实际上,MongoClient.Cluster.Description.State中的值仅在执行数据库操作后更新,这实际上使用了连接。这是对数据的任何类型的查询,但不是像创建一个表示集合的。net对象这样的事情。因此,即使在打开MongoDB连接后,该状态仍然处于断开连接状态,直到您执行第一次操作。

因此,要真正验证连接状态,您可以使用ping(它不会更新此状态,因为ping不是数据库查询操作)或简单的虚拟查询,如
var serverState = client.Cluster.Description.Servers.FirstOrDefault()?.State 
    ?? ServerState.Disconnected;