We want to setup multiple servers hosting the same site. Each server (iis6 or iis7) is on its own. Meaning it does not sjare any information with the others. They are not even in the same country.
The problem we encounter is that if we setup a round-robin DNS (multiple IDs under one Domainname) is that the client (browser) switches the servers so that the asp.net session gets lost. The question is how do we set this up, so the clients are randomly send to one of the servers and if one fails the users go to the next one. But if a user is using one of the it should stay there.
Thank you!
Put a load balancer in front of them that can handle session persistence. Round-robin DNS is doing exactly what it is supposed to be doing but knows nothing of the underlying services.
Associate the web site DNS entry with the IP address of the load balancer and it will then handle the session persistence against the two web servers and balance the load but keep the sessions sticky to the servers that handle that users asp.net session.
This doesn't have to be done with a hardware load balancer. A software solution will also work but it really depends on the volume of traffic you have.
Have a read of Load balancing using IIS7 request routing and load balancing module as that might fit the bill for what you want to do.
Sounds like you want global load balancing.
http://www.nettica.com/Failover/Service.aspx
http://www.autofailover.com/
http://dev.robertmao.com/2007/06/30/global-dns-load-balancing-for-free/
http://www.akadia.com/services/dns_round_robin.html
Windows Network Load Balance (a Windows OS feature) implements sticky sessions so that a client is sent back to the same server after the initial connect
What about using redirection? The initial connection would get a random server from the pool, then you can set a cookie. If the cookie is present, then redirect it to the appropriate server.