I'm running ASP (not ASP.NET) with IIS 5.0 on Windows 2000. (Yes, it's an old system.)
My application's virtual directory is configured in IIS to use "High (Isolated)" application protection. Over time, as people access the site, the Task Manager shows that more and more memory is being used and not being freed (not even after 24 hours). There must be a leak in there somewhere. Eventually, performance is affected. But when I Unload the application (via the IIS management console), the system's memory use remains high, even though the DLLHOST process is stopped. I have to restart IIS entirely in order to free all that memory.
The application uses VB Script which calls a custom DLL. The DLL communicates with a SQL Server. The SQL Server looks like it's freeing connections reasonably well.
1. If the virtual directory is using a separate process, why doesn't unloading the virtual directory free all its memory? Does this point to where the memory leak could be?
2. Is there a way I can monitor the memory pool to determine where the leak could be? (I'm [obviously] not an expert in this area!) Remember, I'm using IIS 5.0, so there's no Application Pool item in the IIS console.
3. When I look at the COM+ Application for the virtual directory in Component Services, I see that the Advanced tab has an option for Server Process Shutdown. I'm a little nervous about using it, though. Will it shut down my application only if no one has used it for x minutes? Or is there a risk that if I turn this on, users will lose their sessions?
4. Do you have any suggestions for things for me to try or articles read? (Unfortunately, upgrading to a higher version of IIS isn't an option, at least not in the short term.)