C# 连接到在VM上运行的MongoDB

C# 连接到在VM上运行的MongoDB,c#,linux,mongodb,virtual-machine,vmware,C#,Linux,Mongodb,Virtual Machine,Vmware,我正在尝试学习如何将MongoDB与C#应用程序结合使用。我在CentOS 7虚拟机(VMWare)上安装了MongoDB,但似乎无法连接 我已按照以下示例设置了数据库: 但后来我将角色改为“root”,因为mongod给了我一些我试图修复的警告 以下是我的主要功能: static void Main(string[] args) { string connectionString = "mongodb://myUserAdmin:abc123@192.168.27.129:27017

我正在尝试学习如何将MongoDB与C#应用程序结合使用。我在CentOS 7虚拟机(VMWare)上安装了MongoDB,但似乎无法连接

我已按照以下示例设置了数据库:

但后来我将角色改为“root”,因为mongod给了我一些我试图修复的警告

以下是我的主要功能:

static void Main(string[] args)
{
    string connectionString = "mongodb://myUserAdmin:abc123@192.168.27.129:27017";

    var client = new MongoClient(connectionString);
    var database = client.GetDatabase("test");

    bool isMongoLive = database.RunCommandAsync((Command<BsonDocument>)"{ping:1}").Wait(1000);

    if (isMongoLive)
    {
        Console.WriteLine("Connected!");
    }
    else
    {
        Console.WriteLine("No connection!");
    }

    Console.ReadLine();
}
static void Main(字符串[]args)
{
字符串连接字符串=”mongodb://myUserAdmin:abc123@192.168.27.129:27017";
var客户端=新的MongoClient(connectionString);
var database=client.GetDatabase(“测试”);
bool ismonglive=database.RunCommandAsync((命令){ping:1}”).Wait(1000);
如果(伊斯蒙奥利夫)
{
控制台。WriteLine(“已连接!”);
}
其他的
{
控制台。WriteLine(“无连接!”);
}
Console.ReadLine();
}
我得到的只是“无连接!”输出,这让我觉得我的连接字符串可能有问题。但我已经在admin数据库中创建了myUserAdmin用户,其密码为abc123,如上例所示,CentOS VM上的ifconfig命令返回192.168.27.129。和上面的例子一样,我用端口27017启动了守护进程

我试图在数据库中添加一个条目,但这需要很长时间,最终超时

我不知道我错过了什么,非常感谢您的帮助

更新:我现在已经在本地Windows PC上安装了MongoDB,并以同样的方式设置了DB,还使用--auth启动了守护进程。奇怪的是,我能够同时连接这两个设备,一个包含凭据的连接字符串和一个没有凭据的标准连接字符串。 无论如何,它似乎在本地工作,但在虚拟机上不起作用

更新2:我尝试在/etc/mongod.conf中注释bindIp行,并将其替换为bindIp:0.0.0,::。
我还尝试通过Putty登录,看看是否有效,但没有凭据就成功了。所以我也从我的连接字符串中删除了它们,但是程序仍然无法建立连接。由于myUserAdmin用户不知怎的消失了,它无法与凭据一起工作。但是我在没有--auth的情况下再次启动了守护进程,因为问题似乎并不在于身份验证。

您是否验证了可以访问端口27017上的vm?您是否尝试过使用robo3t或其他mongo ui在vmware上连接mongodb?您将mongodb的连接与SSH连接混淆了。您需要确保能够
telnet
到端口27017(默认mongodb端口)上的mongodb服务器。您是否验证可以访问端口27017上的vm?您是否尝试过使用robo3t或其他mongo ui在vmware上连接mongodb?您将mongodb的连接与SSH连接混淆了。您需要确保能够在端口27017(默认mongodb端口)上
telnet
连接到您的mongodb服务器。