Where does classic ASP store the value for session timeout? I have looked through the code and this classic ASP website isn\'t using Global.asa(so no \"Session_OnStart\") or
Have you looked at the web.config file? I am not a classic asp expert, but in asp.net you can also set session state in the file like so:
<sessionState mode="InProc" cookieless="false" timeout="60"></sessionState>
You may want to verify 2 things.
1.) That you app pool is not recycling too often.
2.) What I mentioned above.
Following on from my comments, your Recycling settings need to be set like the following image to make sure the Application Pool will not be reset.
It's also worth setting the "Generate Recycle Event log Entry" so you can see what events are causing your Application Pool to reset. That way you can monitor it in the Event Viewer.
In IIS7, click on your site, double click ASP, then expand the Limits Properties. You will then see a Script Time-out setting in HH:MM:SS format. Set that and it should fix things.
Source: http://technet.microsoft.com/en-us/library/bb632464.aspx
You can do it 2 way.
Put global asa file into root of your site and define session time out there
You can introduce following line on top of each of the pages in question (if you not using include header)
<%
Session.Timeout=20
Server.ScriptTimeout=1200
%>
20 is been period in minutes and 1200 is same period in seconds. Keep in mind that server takes a seconds not a minutes!!! By default IIS terminates any script if it runs longer then 90 seconds.
If you using include file as a header then you will need to do it only once there, on the top of the page right after option explicit. and assuming that you already did disabled all app pool defaults as what @Lankymart suggested.