10

我正在尝试从 Mongo 2.0 驱动程序初始化 MongoClient,如下所示:

MongoClientSettings settings = new MongoClientSettings();
settings.WaitQueueSize = int.MaxValue;
settings.WaitQueueuTimeout = new TimeSpan(0,2,0);
settings.MinConnectionPoolSize = 1;
settings.MaxConnectionPoolSize = 25;
settings.Server = new MongoServerAddress("mongodb://localhost");
client = new MongoClient(settings)

但是,当我现在尝试使用此代码插入文档时:

db = client.GetDatabase("local");
col = db.GetCollection<BsonDocument>(collectionName);
col.InsertOneAsync(new BsonDocument().Add(new BsonElement("id",BsonValue.Create(1)))).Wait();

它什么也没做。它没有被插入,也没有错误消息(尽管一段时间后 System.Timeout 的第一次机会异常出现在输出中)。如果我用

client = new MongoClient("mongodb://localhost")

它确实可以按预期工作并上传文档。

我希望客户端能够处理非常高的写入吞吐量,所以我先尝试了这些设置。我是否设置了一些错误或有其他问题?

编辑:经过更多测试,这确实是我得到的 System.Timeout 异常。

4

1 回答 1

14

我可以重现该问题,仅在我的错误消息中,在大约 40 行文本的某处隐藏了一些更有用的信息:

没有这样的主机是已知的

事实证明,MongoServerAddress 只需要主机名,而不是协议

settings.Server = new MongoServerAddress("localhost");
于 2015-05-12T19:56:24.913 回答