Reputation: 21
I have an ASP.NET 3.5 webforms app that sits on two webservers (IIS) and is load balanced via a content switch with sticky affinity. I have a page that puts data into a session variable, javascript opens a new browser window, and in the page_load event of that page, i retrieve that session variable and display the data.
the problem is that in all versions of IE, about 7 times out of ten, no data is displayed. If i keep refreshing the newly opened window, it will eventually display the data. I can verify that before that browser window is opened, the session variable is valid.
An additional twist is that firefox doesn't have this issue. The data is displayed 100% of the time the first time. The problem is we don't (officially) support firefox.
We don't have access to any third party datastore such as MSSQL or MySQL, so storing session data there isn't an option. Plus the ability to cache the data client side isn't practical and in some cases not an option.
This doesn't happen locally or in our test environment (which isn't load balanced), so i'm truly baffled. Any help would be greatly appreciated.
Thanks.
Upvotes: 2
Views: 281
Reputation: 3475
You mentioned that you are using sticky session/affinity. Can you confirm that your load balancer is looking at HTTP cookies (not only IP address) to determine stickiness, since IP addresses can change during a single session (e.g. docking a laptop between a wired and wireless network).
Upvotes: 1
Reputation: 1885
What session store provider are you using? InProc, StateServer? It sounds like you're using InProc. If so, since you don't have access to a DB, switching to StateServer may be your answer.
Here's an article about ASP.NET load balancing and ASP.NET state server that may help you.
Upvotes: 3