1 c# azure mongodb mongodb-.net-driver
因此,我使用MongoDB了一个Azure VM并且我在 Azure 网站上托管了一个网站作为服务。我的问题是:有时我会收到这样的错误:
“异常:MongoDB.Driver.MongoConnectionException:打开与服务器的连接时发生异常。---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或建立的连接失败,因为连接的主机未能响应”
收到此错误后,只需再次访问端点即可立即成功。
细节:
连接字符串:mongodb://xxx.aaa.net:1000, xxx.aaa.net:1001, xxx.aaa.net:1002/?readPreference=nearest
在打开与 Mongo 的连接之前,我将 MaxConnectioIdleTimeout 属性设置为“MongoDefaults.MaxConnectionIdleTime = TimeSpan.FromSeconds(30);” , 保持活动连接,因为 azure LoadBalancer 的空闲超时默认在 4 分钟后变为非活动状态。
所以,我不知道发生了什么。
有谁能够帮助我?
小智 5
是的,4分钟。如果Azure 一直空闲到4 分钟就会关闭连接会话。但是mongodb 驱动程序不知道吗?它仍然会从连接池中获取这个连接。您可以将MaxConnectionIdleTime(在 mongodb 驱动程序设置中)设置为小于 4 分钟,或者通过 powershell 将 azure VM 的最大会话空闲时间设置得更大(最多 30 分钟)。
顺便说一句,如果您的网站也托管在 azure 上,则使用私有 IP(PIP)访问 mongodb 服务器,则不会出现此问题。
| 归档时间: |
|
| 查看次数: |
6139 次 |
| 最近记录: |