views:

664

answers:

2

We have a 4 server cluster running ASP.NET web application using ASP.NET State Server Service for session. On one of the 4 servers ASP.NET State Server Service is running and other servers are configured to look at this. Very often we have to patch the servers, and applying patch on the State Server requires few minutes of downtime.

Is there a way to configure more than two ASP.NET State Server Services in a cluster, so if one goes down, the other takes over?

+1  A: 

I'd look into Session State Partitioning. Good info here: http://blog.maartenballiauw.be/post/2008/01/ASPNET-Session-State-Partitioning-using-State-Server-Load-Balancing.aspx

Jon Galloway
A: 

A second Asp.net State Server Service cannot take over if the first one fails without loosing the part of session info stored on the first server. New sessions will be handled fine by the second server. To get this behaviour you need to set up session state partitioning, see Jon Galloways answer.

This behaviour is by design, the Asp.net state service does not do replication of the session data between servers.

If you need out of process session data replicated to several servers you must either use one of the commercial offerings (ScaleOut, for instance) or wait for Microsoft Project Velocity to become production ready. Personally I am eagerly awaiting the release of Velocity and will switch to it from Asp.net state server as soon as I feel confident in the product.

More on Velocity for session state for Asp.net:

http://blogs.msdn.com/velocity/archive/2008/06/05/how-to-use-session-store-provider-microsoft-project-code-named-velocity.aspx

Tormod Hystad