Classic ASP Session State on IIS6 move - losing session variables

We have a critical app that has been running on NT4 under IIS4 and using MTS. The web site takes uploads from users, writes the file to a process directory,which is not the same path as the web app, and there is data stored in a SQL 7 database. There are other programs that are used on the same server that take the data and use to to do some processing and then update the database with the results. There are about 9 seperate classes that are used in the website that were developed in VB6 and the webpage uses   createobject to get a reference and the variables used are session("name) -which is Classic ASP standard practice.
The files that are uploaded by the user are given a new name on the server based on a user identifier and a sequence number. Those names are both displayed after uploading.
The dataload increased dramatically and was causing huge delays in processing. That kicked off the effort to move this to a Windows 2003 box with multiple processors and 8Gig of ram with IIS6 and running SQL 2000.
In testing, the system started reporting errors with the files. It had the original file name, the server filename, and the file it had the error with - was completely different. That filename was from another persons session. The User identifer and sequence number that should have been in the session variables were apparently confused within a very short period of time - all 5 people testing the app saw the same type of error.
We are losing session variables, we have one app pool with one worker process.
There is not a web farm - this is all on one box -- as they do not want to re-architect or rewrite the app.
The box being moved to has SP1 Windows 2003.- SQL 2000 SP4 - IIS6 and nothing else running on the box except this app.  
I am feeling a bit stumped and am reaching out here for some help on what to look for.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ted BouskillSenior Software DeveloperCommented:
Windows 2003 closed a number of security holes that were open in ASP applications in previous versions of Windows.  This includes making it more difficult to get access to and run system 'objects' which could expose the server to risk.  You'll have to dig through the Microsoft site for information about the differences.
On this link:

Under Post: "01 Dec 05 05:22 AM : Ahmed : Jordan" it states:

"...Well, we solve the problem, we were hosting our web application at web garden architicture server machines (multi server machines), at that time our session mode was InProcess so, no unexpected logged out was happen in our local machines but when we host it to server unexpected logged out appears. So, web garden server machines seems to distribute our worker  processes so Session mode shall be in StateServer mode.

As i read, and for the reason that Worker process is distributed, you cannot use InProcess mode.
therefore, you should set session mode to stateserver, and make sure that your Session object is Serialized and any other objects that it used shall not be serialized.

another thing make sure that you don't miss your connections (leaking of connections) by disposing each connection opened, since any exception appeared within uses of connection will not close it, it will still opened so try to dispose connections always, even if you close it.. "

That seems to address your problems. If not, the other two posts that follow that also seem very relevant to your issue.

mitchellm44Author Commented:
regarding 2003 closing security holes - That was known. pointing to the documentation is not really a sufficient answer.
The post about Serializing connection objects - would be applicable if we were in .Net - however this was VB6.
The solution that We came up wiith was not even suspected at the time of the posting. The server was being started with Terminal Services. The fix was to use the Console Switch to force the Terminal services to Session 0 - and then the session variables do not get lost. I did not find anything that spoke to that, it was something that one of our server support people found, and worked.  
I will ask to have the points refunded.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Closed, 500 points refunded.
Site Admin
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.