等待MongoConnection超时

4
为什么在从MongoDB服务器获取对象时,使用Mongo C#驱动程序出现以下异常?
“超时等待MongoConnection。”
是否有一种方法可以在某个地方设置此连接超时或解决此问题?
2个回答

4
您可以在连接字符串中使用socketTimeoutMS来增加超时时间。
示例:
mongodb://localhost/myCollection?socketTimeoutMS=60000

错误与连接有关,因此在这里使用 connectTimeoutMS 参数更为合适。socketTimeoutMS 默认为无限大,因此您的建议并没有改进任何内容:http://blog.mongolab.com/2013/10/do-you-want-a-timeout/. - Andriy Tylychko

1

您可能遇到了这个问题:

https://jira.mongodb.org/browse/CSHARP-406

问题已经得到解决,修复将包含在C#驱动程序的1.4版本中(即将发布)。

与此同时,您最好的方法是增加连接池的大小,从默认值100增加到更大的值,这可以通过连接字符串轻松完成:

mongodb://localhost/?maxpoolsize=200

使连接池大小足够大,以便有更多的连接数超过正在运行的线程数(或者至少有足够的连接来满足需要同时连接的所有线程)。


发生这种情况是因为对象图中存在递归引用,它不断进行递归并尝试从服务器拉取数据,导致了崩溃。我必须通过增加超时时间来查看足够的堆栈跟踪信息。更改上面列出的属性增加了超时时间。我会记住maxpoolsize,它会变得有用。 - iefpw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接