Link to home
Start Free TrialLog in
Avatar of cybersharks1
cybersharks1

asked on

Why does IIS 6.0 hang and/or stop serving ASP pages?

Hi Experts,
  We have been trying to resolve this issue for a few years about the ASP service "hanging" and "timing out"  We have a Windows 2003 Web Server that runs about 300 websites.  There is no pattern or timeframe but in the range of a few days.  So for example the server will hang on Monday and not have to be reset "IISRESET" again until Friday or maybe even two weeks.  When this does happen all ASP and ASPX stop serving up on all websites on the server.  The HTML pages come up fine, and when an IISRESET is done or more specific reset the ASP service it will "recycle the Application pool" and start working again.  I ran across a asp programming FAQ "http://classicasp.aspfaq.com/general/why-does-iis-hang-and/or-stop-serving-asp-pages.html" today that caught my attention and I'm attempting to resolve the issue or at least find out what is going on.  To be honest I'm not sure if this is one site with bad code that "locks" up the app pool or what.  The most information I found so far is that Microsoft in all it's glory made the Access database only stay "stable" at 10-15 connections.  So running Ecommerce websites with Access and ASP, they state that this is a well known issue that after many connections it "locks up the service" and ASP pages stop responding.  So to resolve this is to upgrade to use MS SQL so as to accept an unlimited amount of connections.  What is the best way to attempt to resolve this issue?  Any more questions or suggestions will be helpful, thanks again for reading this post and your time.
Avatar of golfDoctor
golfDoctor

Set Application pool settings to increase performance and limit hangs.
http://msdn2.microsoft.com/en-us/library/Aa720391(VS.71).aspx 

Set recycle worker processes and max memory usage to fit the sites.

I would put different sites into their own application pool and see which one hangs
Avatar of cybersharks1

ASKER

Hi Golf Doctor,
Thanks for the response.  This application pool settings has been set for at least over a year as to what was shown on the link below.

Set Application pool settings to increase performance and limit hangs.
http://msdn2.microsoft.com/en-us/library/Aa720391(VS.71).aspx 

Recycle worker process is set to 1740min.  Good?

What is a good default for the recycle worker processes and max memory usage to fit the sites., these have not been set.  I'm lacking the programing and coding knowledge, I really just have background in Windows 2000/03 Server.

Hi:  The none, Its funny because one we have 300 websites using mainly the default app pool.  Also when the service hangs its not just one application pool it's every single one on the server.  The asp service it's self stops working.

So the people I have been talking to state when you do an IISreset or stop the asp service you drop the "open connections or bad code loops" to the database and it starts responding.  

Does that make sense for one application pool to cause the whole service to hang?

We also have this happen on multiple older servers so we thought upgrading, giving more ram and moving them to brand new servers would fix this issue.  


Think about it this way. If a programmer programs an application in a never ending loop in one application pool then that whole application pool will hang.
I would set the sites into different application pools
Yes, I'm referring to recycling.  Right click the Application Pools folder in IIS, so set globally.

Check Recycle Worker processes (in minutes) and try 1000 minutes

Check both max memory and try 1000
OK let me makes the changes and wait just a few days, I know that sounds crazy about the time frame but this happens every week and a different customer will call, So stay posted PLEASE keep this open.  I will split or give all points to everyone who has helped and if we fix this, I know a few other people having this same issue.  Thanks again for you time and the feed back.
This is common in IIS, when bad code is running a muck.  No offense of course, but this is caused by bad code.
bad code, and not enough memory, which the bad code maxes out.   That is why the recycle is necessary, to bandaid the bad code :)
Hi Golf Doctor,
Sorry, hit enter on last post.  I've changed the settings to what you stated.  I under stand the logic of how it may happen with bad code.  So just to make clear if you have 2 websites and 2 application pools.  Website A has bad code and lets says it does max out the resource and the asp service "hangs" this effects the server and therefor the application pool B will not work, Correct?  Or are you saying there is no way A can effect B?  

After making those changes on one server I get this strange error in Event Log all of a sudden, which confuses me more.

Reporting queued error: faulting application w3wp.exe, version 6.0.3790.1830, faulting module unknown, version 0.0.0.0, fault address 0x02035c80.

So my next step is when one of these customers call, I'm going to check another website in a seperate application pool and see if the service is still running.  I'm looking forward to finding out what is going on.
ASKER CERTIFIED SOLUTION
Avatar of golfDoctor
golfDoctor

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Hi Golf,
We have just been looking over everything.  We agree, we've been looking at this for a year at least.

This is caused by not enough RAM on server and to many ASP/DB connections plus bad code with people not closing loops.  The recycle time is the best thing we have seen so far but seperating website into different App Pools show no effect as the enitre ASP.Net service will stop on the server.  Thanks for the help

This is common in IIS, when bad code is running a muck.  No offense of course, but this is caused by bad code.

Yes, I'm referring to recycling.  Right click the Application Pools folder in IIS, so set globally.

Check Recycle Worker processes (in minutes) and try 1000 minutes

Check both max memory and try 1000
good luck