ASP.Net Session Timeout Resolved
I administrate an ASP.Net web application that requires our users to log in throughout the day and enter their time/expenses into the accounting system.
When left idle for 20 minutes, the browser session times out and the user is forced to logout and sign in again. But there is no indicator or timer showing when the session expires and most users find out only after they try to save a record hence losing all their work.
The software manufacturer addresses this issue on their support wiki stating that you simply increase the Session Timeout variable located in IIS under YourWebSite -> Properites -> ASP.NET-> Edit Configuration -> State Management. Seems legit to me, but didn't work out to well. I applied these changes to several different objects up the tree in IIS thinking there was a global configuration that was trumping my changes but after I had changed every instance of Session Timeout i could get my hands on it still timed out after 20 minutes.
Then I checked the properties of the Application Pool related to my web application. Under the Performance tab there is a section labeled Idle Timeout where you can set the idle time required to shutdown the worker processes. The default was 20 minutes (sounds familiar). I bumped this up to 1200 minutes and restarted IIS. This solved the user session timeout issue!
When the worker process times out and shuts down, the related user session is deleted and the user is force to start a new one. When the user refreshes the page after this has occurred the application behaves as if the session has expired.
