3
votes

We have an application that runs over load balanced server instances, and therefore is configured to use the ASP.NET session state service, which is running on one of our DB servers. While both instances of our app can successfully connect to the state server, changes in session state data are not being reflected across both of them. FI, If I call Session.Add('SomeKey', SomeData) on Server A, this is not being reflected if I then try to access Session['SomeKey'] on Server B.

Session.SessionID returns the same value on both servers, and I have checked that they are both using the same validationkey and decryptionkey values configured in the machinekey section of machine.config. I even tried specifying these values in the apps web.config.

What other things should I be looking out for which may be causing these symptoms, and what steps can people recommend to help debug this issue?

2

2 Answers

5
votes

Does this help:

http://support.microsoft.com/kb/325056 ?

To maintain session state across different Web servers in the Web farm, the application path of the Web site (for example, \LM\W3SVC\2) in the Microsoft Internet Information Services (IIS) metabase must be the same for all of the Web servers in the Web farm. The case also needs to be the same because the application path is case-sensitive.

3
votes

I ended up using iiscnfg /copy to perform a full copy of the IIS metabase from one server to the other, and that resolved the problem. Thanks to E.J Brennan for putting me on the road to glory.