Recently had an issues with a server upgrade from IIS 6 on Windows 2003
to IIS 7.5 on Windows 2008 R2 64 bit.
We have a number of websites running on Classic
ASP. All the sites sit under a particular site, e.g. www.example.com/foo and www.example.com/foobar.
On IIS 6 each site was set up as a virtual directory and things worked fine. Since moving
to the new set up, a lot of websites seem
to have mixed Sessions.
To be clear, this is not a app pool recycling issue; rather the sessions are populated with information when the user hits the site and while browsing they get sessions from different sites.
We've determined this based on
- a few customers called up and reported having their shopping cart with items with names of items belonging
to a different site
- also our own testing showed that some queries being run would try
to bring products in from a different site
We've tried
- disabling dynamic caching
- converting each site
to be a virtual application (if I understand correctly, the virtual directory/application concepts were changed/refined somewhat in IIS 7 although
to be honest, I'm not clear what the difference is)
- various application pool changes (using .
NET 2 framework), classic and integrated modes, changing the Process model
to NetworkIdentity), all
to no avail.
The only thing we haven't tried is changing it
to run as a 32 bit application.
We're not using http only cookies, so when I open up a browser and type
document.cookie
into the dev console in Firefox/Chrome/IE that there will be multiple ASPSESSIONID=... values whereas previously I believe there was only one.
Finally, we use server side JScript for the classic
ASP pages, not VBScript, so we have code similar
to the below.
//the user's login account as a jscript object
Session("user") = { email : "
[email protected]", id : 123 };
and if we execute a line of code like below:
Response.Write( typeof(Session("user")) );
When things are running correctly, we get "object" - as expected.
When the Session gets trashed, the output is "unknown" and we are also unable
to access the fields within the JScript object (e.g. the .email or .id fields).
Much appreciated if anyone can provide any pointers about how
to resolve this, everything on google seems
to point
to different issues.