|If you find that requests for any page in a .NET web app (whether aspx or cfm) seem to be running slowly for every or many requests, one thing to determine is whether the "app domain" for the ASP.NET pages might be unloading due to some problem. (.NET defines each web site and each virtual directory as a web app, or technically an "application domain".)
There are various reasons that an application may be restarted, as discussed in the BlueDragon manual, "Deploying CFML on ASP.NET Servers", in the section "Automatic Stopping/Restarting of .NET Web Applications".
If some problem of unexpected behavior is causing .NET to unload the web app, then any subsequent request for a page after it's been unloaded will spend time trying to restart the app domain. This could cause a drag on execution of requests.
Fortunately, .NET tracks restarts by way of statistics that can be viewed with Windows Performance Monitor start. You can observe whether restarts are occruring by viewing the PerfMon tool. Open Performance (from Administrative Tools), then switch to "report view" (ctrl+r) (to see numbers, not charts), then "add" (ctrl+i) the appropriate counter. To get that counter, select the computer to be monitored, then for "performance object", choose "ASP.NET v2.0.50727" (assuming you are using the .Net 2.0 framework), and choose "application restarts" and "add".
This will add a counter showing how often all or selected app domains restart. If it's a large number, then you have experienced many restarts since the server itself was started. You could run a small sample application (also provided in the documentation) to force an unload of the app domain, and again you should see the counter go up. (See the related section on the negative impact of application restarts on sessions.)
Note that you can also use PerfMon to set up alerts and logs instead to "watch" any of these counters.