tags:

views:

501

answers:

1

I am looking at a .NET ASP application (from the support side - I didn't program it).

It intermittently hangs - the web page doesn't open. Recycling the app pool fixes it.

I can see entries in the event viewer stating

"A process server application pool 'wsfrappPool' exceeded time limits during shut down. The process id was '9396' from W3SVC.

I can also see

A worker process with process id of '6804' serving application pool 'AeXRSVaultPool' has requested a recycle because the worker process reached its allowed processing time limit.

I'm looking for advice on how I can track down what is causing the hang and prevent it re-occurring. Can I use performance counters to track this? Are those event viewer entries relevant?

+2  A: 

Check the IIS logs to see what the last few requests were before the app went belly up. That may clue you in to what page(s) may be causing the problem.

I had lots of problems like this with .net 1.*, and it was mostly due to out of memory conditions or when the worker process balooned to over 1GB of memory. (There was a lot of large file uploading, a few explicit GC.Collect() calls helped - a bad, but needed fix) Since 2.0, I havent had this kind of problem (large files and all, without the GC.Collects).

  • What version of .NET is the page hosted in?
  • How many other sites are hosted in the same app pool?

The event viewer events are likely describing your action of recycling the pool.

StingyJack
Thanks StingyJack.It is hosted in 1.1.4322. There is only one site hosted in the app pool.This app deals with lots of file uploads. do you know of any perfmon counter to track that? Is there any web.config setting which could improve performance for this?
Jimmymcnulty
No, its not really something perf counters will help, and if you dont have the source code or cant get the app modified you are kind of screwed. The only option you may have is to change the site to host in 2.0. It may fix some of the problems, but you should try testing it out first.
StingyJack
We also used a homebrewed script that would login to the pages, and do things every X minutes to check availability. When it was non responsive, we would get an alert/email and recycle the process before the users complained.
StingyJack