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.