mongodb3.6 (五)net 客户端访问mongodb设置超时时间踩过的“坑”

时间:2021-10-17 08:18:20

前言

在上一篇文章中,我们有提到net访问mongodb连接超时默认为30秒,这个时间在实际项目中肯定是太长的。而MongoClientSettings 也确是提供了超时属性,如下图:

mongodb3.6 (五)net 客户端访问mongodb设置超时时间踩过的“坑”

可实际使用中,仅仅设置这个参数,是不起作用的,下面实例说明。

设置超时

                        MongoClientSettings setting = new MongoClientSettings();
//设置超时
setting.ConnectTimeout = TimeSpan.FromMilliseconds(1000);
setting.Server = new MongoServerAddress("127.0.0.1", 40001);
var client = new MongoClient(setting);
db = client.GetDatabase(dbName);

启动程序 

这里不用启动40001上的mongodb服务,可看到如下图的错误信息。我们即时在程序中设置了超时,可程序还是默认30秒才相应返回。其中的原因,大家可以看看这篇文章:Expose Server Selection Timeout via Connection String and MongoClientSettings

mongodb3.6 (五)net 客户端访问mongodb设置超时时间踩过的“坑”

解决

大家可以参考文章中配置方法,设置超时时间。