C# 从MongoDB数据库检索集合时遇到问题

C# 从MongoDB数据库检索集合时遇到问题,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我正在为下一个项目学习MongoDB。我已经在我的Windows7机器上安装了MongoDB。我能够使用mongo.exe创建集合并检索数据。我试图使用官方的C驱动程序来操纵集合,但我的测试控制台应用程序在尝试连接到服务器时陷入了深渊 我编写了以下代码: static void Main(string[] args) { try { // Create server settings to pass connection stri

我正在为下一个项目学习MongoDB。我已经在我的Windows7机器上安装了MongoDB。我能够使用mongo.exe创建集合并检索数据。我试图使用官方的C驱动程序来操纵集合,但我的测试控制台应用程序在尝试连接到服务器时陷入了深渊

我编写了以下代码:

static void Main(string[] args)
    {
        try
        {

            // Create server settings to pass connection string, timeout, etc.
            var settings = new MongoServerSettings();
            settings.Server = new MongoServerAddress("localhost", 27017);
            // Create server object to communicate with our server
            var server = new MongoServer(settings);
            server.Connect(TimeSpan.FromMilliseconds(1000));
            // Get our database instance to reach collections and data
            var message = string.Empty;
            server.IsDatabaseNameValid("test", out message);
            Console.WriteLine(message);
            var database = server.GetDatabase("test");
            var users = database.GetCollection("users").FindAll();

            foreach (var user in users)
            {
                Console.WriteLine("User found");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.InnerException);
            Console.WriteLine(ex.StackTrace);
        }

        Console.ReadLine();
    }
控制台应用程序停止在line server.Connect上工作。我写这行只是为了发现问题,我知道并没有必要显式地连接到服务器。若我删除该行,那个么控制台应用程序将停止在用户中的foreach var user行上工作

我还尝试使用以下代码获取服务器,但没有成功:

 var mongoClient = new MongoClient("mongodb://<host>:27017");
 var server = mongoClient.GetServer();

使用上一个示例,如下所示:

var mongoClient = new MongoClient("mongodb://localhost");
var server = mongoClient.GetServer();

除非它不是在同一台机器上运行或不是在标准端口上运行,否则代码是完美的!MongoDB的特点是,当您试图通过C驱动程序连接到MongoDB时,您必须第一次接受连接。下一次MongoDB将记住您最后一次接受并继续前进

必须设置删除此条件,但我尚未找到它。我会尽快更新


学习愉快

您能否确认在启动应用程序时MongoD正在运行?请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标签就是为了这个目的。