What exactly happens when we do IISreset? What resources get released? We have an ASP.Net website (.net 1.1) which use Crystal reports 11. Lately, running reports are throwing several crystal report specific exceptions and then the users can't run reports anymore. Resetting IIS lets the users log back in and run the reports until it fails the next time. Knowing exactly what resources are released when IIS is reset will help us dig deeper to find the root cause. Any help?
Pretty much everything. All thread pools, asp, asp.net, shared memory, etc... will all be purged. Doing in IISReset is basically the same as going to Services->WWW Service->Restart. Also, it will affect SMTP and FTP if you are running these services as well.
To narrow your problem down slightly ( and to reduce impact ), you should try putting your website in its own App Pool. Then when it next hangs, see if restarting the app pool fixes the problem. Then you are limiting things to just one running web application, not completely taking down iis. If the problem persists and still requires an IISReset, you at least have one more datapoint to work with.
EDIT: In response to your additional comment, I would suggest you do as much logging as possible and see if the problem becomes obvious. http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---custom-logging/ Obviously, a quick run through Event Viewer is probably a good idea.
Thanks Serapth. I already tried this approach of recycling only the application pool that my application uses and it releases the resources as you have indicated. Currently we are doing several number of IIS resets a day to let people use our website. We can switch the approach to recycling our application pools. It wont make a lot of difference to us since only only website is hosted on that particular server. But ideally we would like to figure out what resources are getting consumed over the limit and gets released during a iisreset or application pool recycling. This had started happening very recently while the usage of the users have not changed significantly. There are several angles we are looking at and one of them is to figure out the resource usage. Is there a way to monitor in real time and find the exact point of failure of resource consumption. I know my question is vague but we are kind of clueless ourselves. Any help is appreciated.