The Azure Router Timeout

Symptoms

  • An exception is thrown in RavenDB Client when accessing RavenDB Server. The exception was because of a socket timeout or general connection failure.
  • Problem happens mainly on Azure hosted VMs

Cause

Azure's Load Balancer closes connections that are idle for more than 60 seconds.

Resolution

We have to make sure that there are no connections that are idle for more than 60 seconds.

There are two possible ways to do that:

  • Make sure that RavenDB is accessed at least once a minute (consider having a keep-alive message)
  • Change the service point manager's MaxIdleTime;k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true) value in your client application

Note

RavenDB is using heartbeats in 3-10 second intervals on all its internal communication channels so they will be kept open.

Further Reading