What possibilities can cause "Service Unavailable 503" error?

asp.net MvcIisWindows Server-2003Http Status-Code-503

asp.net Mvc Problem Overview


we have a asp.net MVC application deployed to a server, and but when there is too many request to the server, the client will just get a "503 service unavailable" error.
But if I deployed the application to another server ( lower hardware configuration ), everything worked fine, even more requests it can handle well.
My question is what possible configuration can cause the previous server to just throw out a 503 error ? (which means the requests didn't reach our application).

asp.net Mvc Solutions


Solution 1 - asp.net Mvc

Your web pages are served by an application pool. If you disable/stop the application pool, and anyone tries to browse the application, you will get a Service Unavailable. It can happen due to multiple reasons...

  1. Your application may have crashed [check the event viewer and see if you can find event logs in your Application/System log]

  2. Your application may be crashing very frequently. If an app pool crashes for 5 times in 5 minutes [check your application pool settings for rapid fail], your application pool is disabled by IIS and you will end up getting this message.

In either case, the issue is that your worker process is failing and you should troubleshoot it from crash perspective.

What is a Crash (technically)... in ASP.NET and what to do if it happens?

Solution 2 - asp.net Mvc

If the server doesn't have enough memory also will cause this problem. This is my personal experience with Godaddy VPS.

Solution 3 - asp.net Mvc

Primarily what that means is that there are too many concurrent requests and further that they exceed the default 1000 queued requests. That is there are 1000 or more queued requests to your website.

This could happen (assuming there are no faults in your app) if there are long running tasks and as a result the Request queue is backed up.

Depending on how the application pool has been set up you may see this kind of thing. Typically, the app pool's Process Model has an item called Maximum Worker Processes. By default this is 1. If you set it to more than 1 (typically up to a max of the number of cores on the hardware) you may not see this happen.

Just to note that unless the site is extremely busy you should not see this. If you do, it's really pointing to long running tasks

Solution 4 - asp.net Mvc

We recently encountered this error, root cause turned out to be an expired SSL cert on the IIS server. The Load Balancer (infront of our web tier) found the SSL expired, and instead of handling the HTTP traffic over to one of the IIS servers, started showing this error. So basically IIS unable to server requests, for a totally different reason :)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMemoryLeakView Question on Stackoverflow
Solution 1 - asp.net MvcRahul SoniView Answer on Stackoverflow
Solution 2 - asp.net MvcYesu RajView Answer on Stackoverflow
Solution 3 - asp.net MvcShiv KumarView Answer on Stackoverflow
Solution 4 - asp.net MvcAdnanView Answer on Stackoverflow