The first thing to check is the session timeout period set in your IIS. This can be done by going to the properties for your HelpMaster virtual directory, then clicking on 'Configuration' button on the Virtual Directory tab. Then on the options tab of the Application Configuration screen, increase the session timeout property to the required value. Depending on the IIS version used, the procedure for setting the session timeout setting, as described above, might be slightly different.
If the above does not produce the desired result then this could be due to your ASP.NET process recycling. I believe the default options for an application pool are to recycle these processes after 20 minutes of idle time. This would normally not be a problem if sessions were less than this. You can increase the idle timeout of the worker process as follows:
1. Create a new application pool for HelpMaster (eg, 'HelpMasterAppPool')
2. Add the HelpMaster web interface to this application pool (done on the virtual directory tab of the virtual directory properties page, under the section 'Application Settings'.
3. Configure the 'Idle timeout' setting on the performance tab of the application pool settings and set it for a very high timeout value or turn off idle timeout all together. Apply these settings. Stop and restart the application pool.
Please note that if you allow sessions to drag on, you will place a large burden on your server - especially if there are a large number of clients using the web interface. Hence the recommendation that this be done only for a helpmaster application pool, and it should be monitored carefully. Please let us know how this solution goes.
EDIT: You will also need to set the timeout attribute of the "sessionState" element in your HelpMaster web configuration file (i.e. web.config file located under your HelpMaster virtual directory). My understanding is, this would override the IIS session timeout setting.