Azure上的MongoDB连接问题

Emr*_*nci 13 c# azure mongodb

我们将一个ASP.NET MVC应用程序部署到Azure网站,该网站连接到MongoDB并执行读写操作.应用程序迭代地执行此操作.每分钟几千次.

我们使用Autofac初始化C#驱动程序,并按照https://groups.google.com/forum/#!topic/mongodb-user/_Z8YepNHnbI和其他一些地方的建议将MaxConnectionIdleTime设置为45秒.

我们仍然收到大量以下错误:

无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败.方法消息:":{"ClassName":"System.IO.IOException","Message":"无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或已建立的连接失败,因为已连接的主机无法响应.

在连接到Azure上相同数据中心/区域中的VM上部署的MongoDB实例时,以及连接到外部PaaS MongoDB提供程序时,我们会收到此错误.

我在本地计算机上运行相同的代码并连接到同一个数据库,但我没有收到这些错误.只有当我将代码部署到Azure网站时才会这样.有什么建议?

Thi*_*dio 0

您在虚拟机中使用 mongoDB 吗?这似乎是一个网络问题。这种暂时性故障应该会发生,因此您能做的最好的事情就是实现重试模式或使用 Polly 等库来执行此操作:

Policy
    .Handle<IOException>()
    .Retry(3, (exception, retryCount) =>
    {
        // do something 
    });
Run Code Online (Sandbox Code Playgroud)

https://github.com/michael-wolfenden/Polly