We have a highly available website which we are trying to migrate to Azure. We basically have an Azure Standard Load Balancer with a public IP and 2 VMs in the backend pool.
We have noticed that if 1 of the VMs fails (Either the host fails or something like the App Pool fails) the standard load balancer detects that the host is unhealthy but continues to send existing connections to the host.
This means end users who already have a session on the unhealthy backend VM continue to be sent there and often just get a generic HTTP error. Users who are coming in as new connections are succesfully sent to the healthy host in the backend pool.
Our load balancer is setup to not hold state so in theory new connections will be randomly distributed between the hosts underneath and with a session timeout of 4 minutes (The lowest Azure lets us go).
Is there something we have missed here or is this just the expected behaviour of Azure's load balancers?