Iis ошибка http 503 услуга недоступна

I’m really new to setting up web servers in general. I’ve got IIS 8 on Windows 8, and I’m trying to set up a little site locally, while doing some development. In IIS I choose Add Site, give a name, points to a location where I have a index.html file (I’ve tried different locations, latest in a c:\inetpub\wwwroot\test -folder) and otherwise use all default settings. However, when I try to browse to localhost I get

HTTP Error 503. The service is unavailable.

I’ve verified the pool is started, and I’ve given IIS_IUSRS Full Control on the target folder

I’ve search around but not found anything that solved my issue, and there’s nothing helpfull in the EventLog or in the C:\Windows\System32\LogFiles\HTTPERR folder

Could anyone tell me what’s wrong?

weir's user avatar

weir

4,5412 gold badges29 silver badges42 bronze badges

asked Nov 10, 2012 at 14:33

Andreas's user avatar

4

It could be that the user identity is outdated, especially if you’ve tried starting a stopped app pool and the next request again fails.

In IIS, go to the Application Pools under the Server, then find the correct Application Pool for your web site, and click on it. On the Advanced Settings menu to the right, select Identity and change it and enter new user and password. Click on your Application Pool again, and select Recycle to restart it.

You can also try looking at the error message in Event Viewer, under Windows Logs, Application, Details tab.

Broots Waymb's user avatar

Broots Waymb

4,7133 gold badges28 silver badges51 bronze badges

answered Oct 30, 2013 at 13:02

live-love's user avatar

live-lovelive-love

49.1k22 gold badges240 silver badges204 bronze badges

8

Other answers are fine. But in my case, I was working on a Windows box that already was running some old IIS, IISExpress or any other web site. What happened is urls ACLs where reserved somehow in the system. So, you might want to check this.

Here is the console command to dump all URL acls:

netsh http show urlacl

Check what’s returned here, and if anything matches the url you are testing, here is the command to delete one URL acl (for example):

netsh http delete urlacl url=http://localhost:2018/

(beware to carefully note what you do here in case it was not related to the original problem)

answered Jan 16, 2015 at 14:11

Simon Mourier's user avatar

Simon MourierSimon Mourier

132k21 gold badges249 silver badges299 bronze badges

5

In my case the problem was the DefaultAppPool. I changed the «Load User Profile» to false and now it works. However, I don’t know if there are side effects to this.

enter image description here

Further reading on setting the Load User Profile option: What exactly happens when I set LoadUserProfile of IIS pool?

TylerH's user avatar

TylerH

20.8k66 gold badges76 silver badges101 bronze badges

answered Apr 18, 2014 at 16:54

Juan Carlos Puerto's user avatar

2

Check your application’s respective Application Framework Pool — it could be stopped. If it is, start it and check again.

If you’re still experiencing issues you can also check out Event Viewer to find the cause of that error in order to troubleshoot more.

Robotnik's user avatar

Robotnik

3,6513 gold badges32 silver badges50 bronze badges

answered Oct 25, 2013 at 10:20

Scoolsam's user avatar

ScoolsamScoolsam

5714 silver badges3 bronze badges

1

If the app pool is running under some specific user identity, then go to the advanced settings and update the username and password again to ensure they are correct.

TylerH's user avatar

TylerH

20.8k66 gold badges76 silver badges101 bronze badges

answered Aug 16, 2013 at 15:17

Mahboob Alam's user avatar

0

If the app pool immediately stops after you start it and your event log shows:

The worker process for application pool ‘APP_POOL_NAME’ encountered an
error ‘Cannot read configuration file ‘ trying to read configuration
data from file ‘\?\’, line number ‘0’. The data field contains
the error code.

… you may experiencing a bug that was apparently introduced in the Windows 10 Fall Creators Update and/or .Net Framework v4.7.1. It can be resolved via the following workaround steps, which are from this answer to the related question Cannot read configuration file ‘ trying to read configuration data from file ‘\\?\<EMPTY>’, line number ‘0’.

  1. Go to the drive your IIS is installed on, eg. C:\inetpub\temp\appPools\
  2. Delete the directory (or virtual directory) with the same name as your app pool.
  3. Recycle/Start your app pool again.

I have reported this bug to Microsoft by creating the following issue on the dotnet GitHub repo: After installing 4.7.1, IIS AppPool stops with «Cannot read configuration file».

EDIT

Microsoft responded that this is a known issue with the Windows setup process for the Fall Creators Update and was documented in KB 4050891, Web applications return HTTP Error 503 and WAS event 5189 on Windows 10 Version 1709 (Fall Creators Update). That article provides the following workaround procedure, which is similar to the one above. However, note that it will recycle all app pools regardless of whether they are affected by the issue.

  1. Open a Windows PowerShell window by using the Run as administrator
    option.
  2. Run the following commands:
    • Stop-Service -Force WAS
    • Remove-Item -Recurse -Force C:\inetpub\temp\appPools\*
    • Start-Service W3SVC

answered Nov 27, 2017 at 15:33

weir's user avatar

weirweir

4,5412 gold badges29 silver badges42 bronze badges

1

Or if none of the current solutions work, look in your website’s directory for a file called app_offline.htm. That basically tells IIS that your site is unavailable and to show this page instead.

To fix it, either delete it or rename it to app_offline.htm.bak.

In my case, I added it while showing a colleague how to use that to prevent traffic to the site temporarily and then forgot that I did that on my box. Sigh.

answered Oct 15, 2015 at 14:50

Hallmanac's user avatar

HallmanacHallmanac

5292 gold badges8 silver badges14 bronze badges

0

Start by looking in Event Viewer, either under the System or the Application log.

In my case the problem was that no worker process could be started for the App Pool because its configuration file couldn’t be read — I had included an extra ‘.’ at the end of its name.

answered Mar 22, 2013 at 15:36

Samuel Jack's user avatar

Samuel JackSamuel Jack

32.7k17 gold badges118 silver badges155 bronze badges

It is possible that your domain requires the account used for running the AppPool to have batch logon rights. In which case you will see this same error message. The way you can tell if that is the case, is by looking at the System events in the Event Viewer. There should be an event saying that the account being used with the App Pool has either ‘the wrong password or does not have batch logon rights’.

This is why developers quite often use IIS Express on their development machine, since it by passes the batch logon rights issue.

answered Jan 30, 2013 at 14:56

Hashim Akhtar's user avatar

Hashim AkhtarHashim Akhtar

8132 gold badges11 silver badges16 bronze badges

For my case, My Default Application Pool was offline.

To troubleshoot the problem, I checked the IIS logs located in C:\Windows\System32\LogFile\HTTPERR. Scroll down to the most recent error logs, this will show you problems with IIS if any.

My Error was «503 1 AppOffline DefaultPool»

Solution

  • Open IIS Manager
  • Click on Application Pools, this lists all application pool to your right.
  • Check if the application pools hosting your api or site has a stop sign on it. If so, right click the application pool and click start.
  • Try again to access your service from the client

Ryan M's user avatar

Ryan M

18.4k31 gold badges67 silver badges75 bronze badges

answered Jun 22, 2018 at 14:54

mut tony's user avatar

mut tonymut tony

3577 silver badges9 bronze badges

I ran into the same issue, but it was an issue with the actual site settings in IIS.

Select Advanced Settings... for your site/application and then look at the Enabled Protocols value. For whatever reson the value was blank for my site and caused the following error:

HTTP Error 503. The service is unavailable.

The fix was to add in http and select OK. The site was then functional again.

answered Oct 17, 2013 at 20:31

atconway's user avatar

atconwayatconway

20.6k31 gold badges159 silver badges229 bronze badges

2

Check Event Viewer — Windows — Application. If there is a red Error line made from IIS-W3SVC-WP and the message is like The Module DLL C:\Windows\system32\inetsrv\rewrite.dll failed to load. The data is the error. then you are missing some Windows Setup features.

In Windows Server 2012 go to Server Manager, Add Roles and Features, Web Server (IIS) and add the matching feature. Usually, most of the Application Development section is installed. Here is a complete list of IIS features and their associated DLL to help in diagnosis.

After going through a few iterations of that I ended on the error message above regarding «rewrite.dll». This led to a direct download and install of Microsoft URL Rewrite tool. Finally all websites came to life.

answered Nov 10, 2014 at 19:25

SushiGuy's user avatar

SushiGuySushiGuy

1,57317 silver badges20 bronze badges

2

Our server ran out of disk space on Sunday afternoon which led to an application suddenly failing and returning HTTP error 502. The logs were empty so it had to be something that was occurring before IIS even did anything.

A swift look at the event viewer(WIN+R > eventvwr) exposed the issue.
enter image description here

It’s a good idea to filter out the output of the System and Application windows to WAS since it can get pretty verbose in there.

The application depended on another one which was disabled. Therefore keep in mind an application can go down indirectly if one of it’s dependent processes has gone down. We simply re-enabled the .NET application pool and our other application started running normally again.

answered Feb 27, 2017 at 17:05

Patrick.SE's user avatar

Patrick.SEPatrick.SE

4,4645 gold badges34 silver badges44 bronze badges

If you have IIS URL Rewriting installed it could be to do with that. I suffered issues after a Windows 10 Update.

This StackOverflow post helped me.

Go to Windows Control Panel > Programs and Features > IIS URL Rewrite Module 2 > Repair.

Community's user avatar

answered Apr 25, 2016 at 11:23

ᴍᴀᴛᴛ ʙᴀᴋᴇʀ's user avatar

ᴍᴀᴛᴛ ʙᴀᴋᴇʀᴍᴀᴛᴛ ʙᴀᴋᴇʀ

2,7541 gold badge26 silver badges39 bronze badges

1

In my case, the problem was that another application was using the port that I had bound to my web site.

I found it by running the following command from a command line, which lists all of the listening ports and the executable involved:

netstat -b

answered Mar 25, 2016 at 21:23

Avalanchis's user avatar

AvalanchisAvalanchis

4,5003 gold badges39 silver badges48 bronze badges

If you have McAfee HIPS and if you see the following error in event viewer application log:

The Module DLL C:\Windows\System32\inetsrv\HipIISEngineStub.dll failed to load.
The data is the error.

Then this workaround on McAfee.com resolved the issue in my case.

Quote from the page:

  1. Click Start, Run, type explorer and click OK.
  2. Navigate to: %windir%\system32\inetsrv\config
  3. Open the file applicationHost.config as Administrator for editing in Notepad.
  4. Edit the <globalModules> section and remove the following line:

    <add name=»MfeEngine» image=»%windir%\System32\inetsrv\HipIISEngineStub.dll» />

  5. Edit the <modules> section and remove the following line:

    <add name=»MfeEngine» />

  6. After you have finished editing the applicationHost.config file, save the file, then restart the IIS server using iisreset or by restarting the system.

Stacked's user avatar

Stacked

6,9127 gold badges57 silver badges73 bronze badges

answered Dec 28, 2014 at 15:01

Orhan Celik's user avatar

Orhan CelikOrhan Celik

1,51315 silver badges12 bronze badges

0

Actually, in my case https://localhost was working, but http://localhost gave a HTTP 503 Internal server error. Changing the Binding of Default Web Site in IIS to use the hostname localhost instead of a blank host name.

IIS Site bindings for HTTPtname for http binding

answered Aug 30, 2018 at 14:58

Tore Aurstad's user avatar

Tore AurstadTore Aurstad

3,2291 gold badge28 silver badges22 bronze badges

This could also happen if any recent installs or updates happened with .NET framework and/or ASP.NET. If you are unsure of what happened recently and if all your apps use ASP.NET version 4, you can try reset them by running the following commands in command prompt in administrator mode.

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
aspnet_regiis -i

This makes sure to install or reinstall ASP.NET 4 and updates existing applications to use ASP.NET 4 version of the app pool. It updates both IIS Classic and Integrated mode handlers and script mappings in the IIS metabase. It also recreates ASP.NET v4.0 and ASP.NET v4.0 Classic app pools, and sets .NET framework 4 to DefaultAppPool and Classic .NET app pools.

answered Mar 31, 2016 at 15:59

Prabu Arumugam's user avatar

Prabu ArumugamPrabu Arumugam

1,9392 gold badges15 silver badges19 bronze badges

I changed the port from 80 to 8080, that’s why this error occur. I write localhost/ in search bar then this error occur. My problem is resolved by writing localhost:8080/ in the search then local host open.

answered Aug 1, 2019 at 5:22

ABDUL KHALIQ's user avatar

1

This happened to me on a server on our intranet. After browsing through blog posts and Windows logs, it turned out that a few days before Christmas 2015 (related to a Windows Update?) my web site application pool wanted to create a config file in folder c:\inetpub\temp\appPools, but access to this folder was restricted. This caused the application pool to be disabled.

After adding Full control to Everyone on this temp folder, I restarted the Windows Process Activation Service and everything went online again.

If I’d been a little more elegant, it would probably had been enough to grant the AppPool user full control to the folder, but I never seem to remember how the app pool name and app pool user relates to eachother…

answered Jan 20, 2016 at 15:41

Daniel Persson's user avatar

Daniel PerssonDaniel Persson

2,1711 gold badge17 silver badges24 bronze badges

Same thing with IIS Express 10.0 after upgrading Windows 7 to Windows 10.
Solution: go to IIS and enable all disabled websites and reinstall ASP.NET Core.

answered Jul 22, 2016 at 11:14

1_bug's user avatar

1_bug1_bug

5,5154 gold badges50 silver badges58 bronze badges

Also check the address bar and make sure the page is in the right location.

This error can be returned instead of the 404 (Page not found). In my case, it was a bad link on the page that didn’t have a subfolder included.

answered Dec 3, 2015 at 21:15

Tony L.'s user avatar

Tony L.Tony L.

17.7k8 gold badges69 silver badges66 bronze badges

I was having this problem when cleaning up my IIS on dev machine, and I had somehow created a virtual folder for a subfolder of my actual development web that I couldn’t clear and was creating conflicts.

To clear it I had to use

C:\Windows\System32\inetsrv\appcmd.exe list vdir

and then individually remove the problem virtual directories using

C:\Windows\System32\inetsrv\appcmd.exe delete app /app.name:"Default Web Site"/{name of virtual directory}

answered Dec 2, 2019 at 10:23

Siemsen's user avatar

SiemsenSiemsen

1991 gold badge3 silver badges13 bronze badges

enter image description here

For me the solution is to change Enable 32-bit Applications to False


None of the answers worked for me. So I’d like to share what I found after hours of research..

Keep seeing this message from event logs: The Module DLL C:\Windows\system32\RpcProxy\RpcProxy.dll failed to load. The data is the error. Turns out that dll is 64bit and cannot be loaded into 32bit process.

answered Nov 10, 2020 at 15:44

Rohim Chou's user avatar

Rohim ChouRohim Chou

92910 silver badges17 bronze badges

You can also try the following.

Right-click on the site and ‘Basic Settings…’
Click on ‘Connect As…’
Click on Specific User and give the new credentials.

Now it should work.

answered Feb 19, 2021 at 9:57

Tushar Wasson's user avatar

In my case, I had to change my userPass of network because company policies. So, you need to edit your AppPool:
click on Application Pools. Select your pool, ‘advanced Settings…’ go to ‘Process Model’ click on ‘Identity’ and Click on Specific User and give the new credentials.

Dharman's user avatar

Dharman

31.1k25 gold badges86 silver badges137 bronze badges

answered Apr 7, 2021 at 8:40

RogerEdward's user avatar

This might be because of number of connections to the database. I had such a situation and so, wrote a de-constructor and killed db open connection and it resolved.

answered Feb 27, 2014 at 12:34

user3225121's user avatar

1

TL;DR:

The 503 response from the IIS machine, Service Unavailable, is the result of repeated application crashes. Since the w3wp.exe worker process, created by IIS to execute a web application, is crashing frequently, the respective IIS application pool is turned off. This is a feature of IIS, at Application Pool level, called Rapid-Fail Protection. It helps prevent consuming valuable system resources creating a worker process that crashes anyway, soon after spawning.

  • Evidence of repeated w3wp.exe crashes and Rapid-Fail Protection may be found in Windows Events, in the System log with Source=WAS.
  • Evidence of what causes the w3wp.exe to crash may be found in Windows Events, in the Application log: second-chance crashing exceptions with w3wp.exe.

Collecting the IIS basic troubleshooting info helps expedite investigation for the root cause of application crashes. Follow the steps at http://linqto.me/iis-basic-files for instructions.
In many cases, it may be needed to collect memory dumps to study the exceptions causing the crash: see article at http://linqto.me/dumps.

If we’re looking at the reference list of responses that IIS could send, an HTTP response status 503 means Service Unavailable. In most of the cases, we have a 503.0, Application pool unavailable; and when we check the corresponding application pool, it shows “Stopped”.

Believe it or not, that is actually a feature in IIS acting: the Rapid-Fail Protection. If the hosted application is causing the crash of its executing process for 5 times in less than 5 minutes, then the Application Pool is turned off automatically. These values are the default values; but you get the point.

Img 1, Rapid-Fail Protection settings for an Application PoolImg 1, Rapid-Fail Protection settings for an Application Pool

Rapid-Fail Protection

But why turning off the application pool at all? Why is IIS doing that?

You see, there is an IIS component called WAS, Windows (Process) Activation Service, that is creating and then monitoring the worker processes – w3wp.exe – for application pools. These are the IIS processes that are loading and then executing the Web apps, including the Asp.Net ones. These are the processes responding to HTTP requests.

If a worker process crashes, WAS would immediately try to create a new process for the Application Pool; because the Web apps needs to continue serving requests. But if these processes are repeatedly crashing, soon after being created, WAS is going to “say”:

I keep creating processes for this app, and they crash. It is expensive for the system to create these processes, which crash anyway. So why don’t I stop doing that, marking the Application Pool accordingly (Stopped), until the administrator is fixing the cause. Once the condition causing the crashes is removed, then the administrator may manually re-Start the application pool.

This WAS is reporting stuff in Windows Events, in the System log. So, if we open the Events Viewer, go to System log and filter by Event Sources=WAS, we may see a pattern like this:

Img 2, Windows Events by WAS while monitoring w3wp.exeImg 2, Windows Events by WAS while monitoring w3wp.exe

There is a pattern to look for: Usually 5 Warning events 5011, for same application pool name, within a short time frame; if the PIDs, Process ID, in the Warning events are changing, it is a sign that the previous w3wp.exe instance was “killed”, it ended for some reason:

A process serving application pool ‘BuggyBits.local’ suffered a fatal communication error with the Windows Process Activation Service. The process id was ‘6992‘. The data field contains the error number.

… and then followed by an Error event 5002 for that same application pool name:

Application pool ‘BuggyBits.local’ is being automatically disabled due to a series of failures in the process(es) serving that application pool.

This behavior – turning off the application pool – is also seen when WAS can’t start the worker process at all. For instance when the application pool identity has a wrong or non-decipherable password: WAS can’t (repeatedly) start the w3wp.exe with the custom account that was set for the application pool. In Windows Events we would see Warnings/Errors from WAS like:

Event ID 5021 when IIS/WAS starts: The identity of application pool BuggyBits.local is invalid. The user name or password that is specified for the identity may be incorrect, or the user may not have batch logon rights. If the identity is not corrected, the application pool will be disabled when the application pool receives its first request.  If batch logon rights are causing the problem, the identity in the IIS configuration store must be changed after rights have been granted before Windows Process Activation Service (WAS) can retry the logon. If the identity remains invalid after the first request for the application pool is processed, the application pool will be disabled. The data field contains the error number.

Event ID 5057 when app is first accessed: Application pool BuggyBits.local has been disabled. Windows Process Activation Service (WAS) did not create a worker process to serve the application pool because the application pool identity is invalid.

Event ID 5059, service becomes unavailable: Application pool BuggyBits.local has been disabled. Windows Process Activation Service (WAS) encountered a failure when it started a worker process to serve the application pool.

It is HTTP.SYS, for the inquisitive

When the application pool is turned off, hence we don’t have a w3wp.exe to process on requests for it, we’re having the HTTP.SYS driver responding status 503 instead of IIS. Remember that IIS is just a user-mode service making use of the kernel-level HTTP.SYS driver?

Img 3, HTTP.SYS validates and queues requests for IIS to pick and processImg 3, HTTP.SYS validates and queues requests for IIS to pick and process

With a normal, successful request, we have the IIS responding:

Img 4, Success response 200; in Response headers, the Server is IISImg 4, Success response 200; in Response headers, the Server is IIS

But when the application pool is down, the request does not even reach IIS. The response comes from HTTP.SYS, not from the w3wp.exe:

Img 5, With a 503 Response, the Server header is HTTP.SYSImg 5, With a 503 Response, the Server header is HTTP.SYS

Without a w3wp.exe to process the requests which arrived for an application pool, HTTP.SYS, while acting as a proxy, basically says:

Look, dear client, I tried to relay your request to IIS, to its w3wp.exe process created to execute the called app.
But the app or its configuration is repeatedly crashing the worker process, so creation of new processes ceased.
Hence, I had no process where to relay your request; there is no service ready to process your request.

Sorry: 503, Service Unavailable.

Why is w3wp.exe worker process failing?

I think of an IIS application pool as:

  • A queue for requests, in the kernel, maintained the HTTP.SYS driver; see it in a command-line console with
    netsh http show servicestate
  • Settings on how to create a w3wp.exe IIS worker process and how it should behave.
    • This process will load and execute our web application, most commonly an Asp.Net/NET Framework application.

As with all applications, exceptions happen, unforeseen errors. They all start as first-chance exceptions.

  • Most of the first-chance exceptions are handled and they never hurt the app or its executing process.
    They are handled either by the code of the application, or by the Asp.Net framework itself.
    • If the unhandled exception happens in the context of executing an HTTP request, the Asp.Net Framework will do its best to treat (handle) it by wrapping it and generating an error page, usually with an HTTP response status code of 500, Server-side execution error.
      The exception that was not handled by the developer’s code gets handled by the underlying framework.
  • Some exceptions are unhandled, not treated by any code in the process, so they become the so-called second-chance / process-crashing exceptions.
    • When these happen, the operating system simply terminates the process that generated them; all the virtual memory of the process is flushed away into oblivion.
    • Exceptions occurring outside the context of a request processing (such as during application startup) have more chances to become second-chance, crashing exception.

Fortunately, these exceptions – first-chance or second-chance – may leave traces. The first place to look at is in the Windows Events, Application log.

As an illustration, the code of my application running in the BuggyBits.local application pool generated the following:

Img 6, First-chance exception by app in .NET RuntimeImg 6, First-chance exception by app in .NET Runtime

Since the exception could not be handled by the Asp.Net, it immediately became a second-chance exception, causing Windows to terminate the w3wp.exe in the same second:

Img 7, Second-chance exception crashing w3wp.exeImg 7, Second-chance exception crashing w3wp.exe

Pings from WAS to check on w3wp.exe

If you notice the time-stamp in the capture above, it corresponds to a Warning event from WAS in the System log, telling that the worker process did not respond (Img 2).

This response does not refer to the HTTP request/response; it refers to pings from WAS.

Remember that I said WAS is creating the worker processes, w3wp.exe, but also it monitors them. It has to know if the worker process is healthy, if it can still serve requests. Of course, WAS is not able to know everything about the health of a w3wp.exe; many things could go wrong with the code of our app. But at least it can send pings to that process.

Illustrating with the Advanced Settings of an application pool, WAS is sending pings to its instances of w3wp.exe, every 30 seconds. For each ping, the w3wp.exe (that PID) has 90 seconds to respond. If no ping response is received, WAS concludes that the process is dead: a crash or hang happened – no process thread is available to respond to the ping. Notice that we also have other time limits too that WAS is looking on.

Img 8, Setting process pings from WAS to w3wp.exe(s)Img 8, Setting process pings from WAS to w3wp.exe(s)

More on exceptions

It may happen that, even looking in Windows Events > Application log, we still don’t know why our w3wp.exe is crashing or misbehaving. I’ve seen cases where the exceptions are not logged in Windows Events. In such cases, look in the custom logging solution of the web application, if it has one.

Lastly, if we don’t have a clue about these exceptions, if we have no traces left, we could attach a debugger to our w3wp.exe and see what kind of exceptions happen in there. Of course, we would need to reproduce the steps triggering the bad behavior, when using the debugger.

We can even tell that debugger to collect some more context around the exceptions, not just the exceptions itself. We could collect the call stacks or memory dumps for such context.

One such debugging tool is the command-line ProcDump. It does not require an installation; you only need to run it from an administrative console.

Let’s say I put my ProcDump in E:\Dumps\. Before using it, I must determine the PID, Process ID of my faulting worker process w3wp.exe:

E:\Dumps>C:\Windows\System32\InetSrv\appcmd.exe list wp

Then, I’m attaching ProcDump to the PID, redirecting its output to a file that I can later inspect:

E:\Dumps>procdump.exe -e 1 -f "" [PID-of-w3wp.exe] > ProcDump-monitoring-log.txt

If my Windows has an UI and I’m allowed to install diagnosing apps, then I prefer Debug Diagnostics. Its UI makes it easier to configure data collection, and it determines the PID of w3wp.exe itself, based on the app pool selected. Debug Diag is better suited to troubleshoot IIS applications.

Both Debug Diag and Proc Dump are free tools from Microsoft, widely used by professionals in troubleshooting. A lot of content is available on the Web on how to use these.

A natural continuation to this article is the one I wrote about exceptions, exception handling, and how to collect memory dumps to capture exceptions or performance issues:

  • About exceptions and capturing them with dumps

Aside: Just in case you are wondering what I use to capture screenshots for illustrating my articles, check out this little ShareX application in Windows Store.

Learn how to get rid of this error for good

by Milan Stanojevic

Milan has been enthusiastic about technology ever since his childhood days, and this led him to take interest in all PC-related technologies. He’s a PC enthusiast and he… read more


Updated on

  • Browsers are essential tools for surfing the Internet, they are the middleman between your computer and the websites you visit.
  • There are plenty of different browsers on the market, each targetting specific user needs, but there is one thing that browsers have in common: error 503.
  • HTTP error 503: The service is unavailable is one of the most frequent error codes affecting browsers.

HTTP errors usually come in the form of status codes which are standard response codes that help you identify the cause of the problem given by a website server when either a web page or other resource fails to load properly while online.

Whenever you get an HTTP status code, it comes with the code itself, and the corresponding explanation such as HTTP error 503: The service is unavailable.

Something else you may want to keep in mind is that each of these codes, also known as browser errors, Internet error codes or Internet connection errors have its groups.

What is the HTTP error 503?

The HTTP 503 error falls under the 5xx server error group of HTTP status codes. They usually indicate that the web page or resource request is understood by the server, but the latter cannot fill it for one reason or another.

However, the HTTP error or status codes shouldn’t be confused with Device Manager errors or system error codes, because the latter is associated with different errors and meanings altogether.

When you get HTTP error 503, this usually points to the website’s server, which may have been compromised by an overload (temporarily) or it is too busy, or there’s some ongoing such as scheduled maintenance.

Fortunately, although this error comes up often, there are fairly quick solutions to fix the issue and get the website back online.

What is HTTP error 503 and how can I fix it?

  1. Preliminary checks
  2. Close your proxy server
  3. Start the destination application pool
  4. Change Load User Profile
  5. Change Identity in Application Pool

1. Preliminary checks

Whether the issue is with the server or your computer, there are some things you can try and check before fixing HTTP error 503: The service is unavailable. You could start by retrying the URL from the address bar by reloading or refreshing the page.

You can also restart your modem and router, then restart your computer or device – this is especially so if you see the ‘service unavailable – DNS failure’ message. If this doesn’t fix the error 503 DNS issue, pick new DNS servers and change them on your PC or router.

Check with the website itself directly for assistance as they may be aware of the error 503, so they may let you know if it is an issue that’s with everyone, not just you. Sometimes waiting it out is the easiest fix to this error.

  • ALSO READ: 4 best browsers with built-in VPN you should use today

2. Close your proxy server

Perhaps you use a VPN or a proxy server, in which case, you need to check whether the connection is working the way it should, or properly. If the proxy server is down, then you may end up getting the HTTP error 503: The service is unavailable message.

This usually happens with free proxy servers, but if you do not use a proxy server, you can disable it and then try to open the website that is showing the HTTP error 503 the service is unavailable.

3. Start the destination application pool

If the application pool of the corresponding web application is stopped, or disabled, it causes the website to show HTTP error 503: The service is unavailable.

Additionally, any misconfiguration in the application pool or site settings can cause an error on the site. Process crashes also happen due to incorrect application logic.

Sometimes the user account related to the user identity of an application pool can be locked or has an expired password or even inadequate privileges which tamper with the functioning of the website.

If the application pool runs out of RAM or other resources, it can crash and lead to HTTP error 503, plus server migrations also lead to such errors.

If HTTP error 503 the service is unavailable is caused by a stopped application pool, starting it would resolve the issue.

  • Click Start
  • In the search bar, type Windows Features
  • Select Turn Windows Features on or off
http error 503 the service is unavailable turn windows features off
  • Locate Internet Information Services and check the box – this will install everything you need to use IIS
http error 503 the service is unavailable locate internet information services
  • Go to Control Panel
http error 503 the service is unavailable control panel
  • Select View By and click Large Icons
  • Click Administrative Tools
http error 503 administrative tools
  • Find IIS Manager and double-click on it
http error 503 the service is unavailable IIS manager
  • Select Application Pools node
http error 503 the service is unavailable view application pools
  • Right-click on DefaultAppPool to check the status. If it is stopped, start it. If it is running, restart it and see if HTTP error 503 the service is unavailable is gone.
http error 503 default app pool
  • ALSO READ: 3 best browsers with VPN that don’t slow down Internet connection

4. Change Load User Profile

If the problem is the DefaultAppPool, change the ‘Load User Profile’ to false by doing the following:

  • Go to Control Panel
  • Select View By and click Large Icons
  • Click Administrative Tools
http error 503 the service is unavailable administrative tools
  • Find IIS Manager and double click on it
http error 503 double click on IIS
  • Select Application Pools node
http error 503 the service is unavailable application pools
  • Click on DefaultAppPool to select or highlight it
default app pool iis
  • On the right pane, select Advanced settings
advanced settings iis manager
  • Find Process Model
find process model iis
  • Go to Load User Profile
load user profile iis manager
  • Change from True to False
load user profile iis manager

5. Change Identity in Application Pool

  • Go to Control Panel
  • Select View By and click Large Icons
  • Click Administrative Tools
  • Find IIS Manager and double-click on it
  • Select Application Pools node
iis 503 error view application pools iis
  • Find the correct Application Pool for your website and click on it
  • Click Advanced Settings
iis 503 error advanced settings
  • Under Process Model, select Identity and change it, then enter a new user and password
iis 503 error fix identity
  • Click on your Application Pool again and select Recycle to restart it.
  1. Reload the website
  2. Restart your modem and your computer
  3. Clear the browser cache
  4. Check your proxy settings
  5. Restart the DefaultAppPool 
  • What does service temporarily unavailable mean?

The error message Service temporarily unavailable indicates the server is not available either due to overloading issues or scheduled maintenance work. This is only a temporary issue, the service should get back online once the problem has been solved.

How can I fix error 503 on specific services?

1. Fix Tachiyomi HTTP error 503

This error affects Manga fans since Tachiyomi is a popular Manga reader for Android. PC users can also use this app with the help of an emulator or a bootable USB device. Here’s how to fix error 503 on Tachiyomi:

  1. Update the app, and make sure you’re using the latest version.
  2. Reset your Internet connection, and restart your modem and computer.
  3. Go back to the chapter menu, reload a new chapter and resume reading.
  4. Open a manga from the catalog throwing error 503. Click on the menu and select the option that allows you to open it in the browser. Close the browser and the source should be fixed now.

2. Fix HTTP error 503 the service is unavailable in IIS

To fix error 503 on IIS, you can do so through the built-in Application Pool. IIS stands for Information System Security and can be easily modified through the following steps.

1. Enable IIS

  1. Press the Windows Key and type windows features in the search box.
  2. Click on the result to open the Windows Features tab.
  3. Check the box next to Internet Information Services to enable it.

2. Start the Application Pool

  1. Press the Windows Key and type control panel.
  2. Click on the result to open Control Panel.
  3. Select Administrative Tools from the list.
  4. Find IIS Manager and click on it.
  5. Click on View Application Pools from the actions tab.

3. Change the AppPool username and password

  1. Go to Server, select the Application Pools and select the Application Pool of your website.
  2. Go to Advanced Settings and select Identity.
  3. Enter a new username and password, click on your Application Pool again.
  4. Select Recycle to restart it.

4. Tweak the Load User Profile

  1. Open the Advanced Settings of the DefaultAppPool.
  2. Change the Load User Profile option to false as shown at step 4.

5. Delete the URL ACL

If the URL’s ACL is reserver somewhere else in the system, you’re bound to get error 503. Here’s how to fix that:

  1. Open the console command and enter the netsh http show urlacl command to dump all URL ACLs.
  2. If the command returns the URL that triggered error 503, delete it using the netsh http delete urlacl url=[Insert URL] command.

3. Fix urllib.error.httperror: http error 503: service unavailable

Here’s what you can do to fix urllib 503 errors:

  1. Reset your Internet connection. Or connect to a different network (eg: temporarily switch to your mobile hotspot).
  2. Replace urllib by curl

4. Fix www.netflix.com is currently unable to handle this request. HTTP error 503

We’re sure one of these solutions will help you fix the problem:

  1. Try a different Internet connection if available.
  2. Make sure your firewall settings are not blocking Netflix.
  3. Sign in to your Netflix account using another device.
  4. Clear your browser’s cache and cookies.

You may also want to try the solutions listed in this Netflix site error troubleshooting guide.

5. Fix Subsonic HTTP error 503

To fix error 503 on Subsonic, follow these steps:

  1. Clean your Subsonic database. But first, do keep a copy of your database folder. Then, open the subsonic.data file and deleted all the media entries. Keep only the settings.
  2. Reinstall the player.

Did any of these solutions help fix HTTP error 503? Let us know by leaving a comment in the section below.

newsletter icon

In our role as Web support engineers, we resolve and prevent service errors in both Linux and Windows servers. Recently we were contacted by a Windows server owner who was getting “HTTP Error 503. The service is unavailable” in his websites.

Upon examining the EventViewer logs, we could see the error “A process serving application pool ‘plesk(default)(4.0)(pool)’ suffered a fatal communication error with the Windows Process Activation Service”.

See how we help web hosting companies

Today we’ll see what causes IIS “HTTP Error 503. The service is unavailable.” error and how we resolved it.

Our Windows server experts noted that all the domains in the server were using the same application pool [ie. ‘plesk(default)(4.0)(pool)’]. In our experience handling such errors, the following causes have been noted for this error.

  1. Application Pool of the corresponding Wep Application is Stopped – In an IIS server, the domains are assigned to application pools, some dedicated and some shared. If the associated application pool for a domain is in stopped or disabled state, it would cause the website to show “HTTP Error 503. The service is unavailable.” message.
  2. Any misconfiguration in the application pool or site settings, such as spawning applications in 32-bit mode, that can tamper with its proper functioning, can cause error in the site. Improper IIS configuration have noted to cause the worker process to fail. Process crashes also happen due to incorrect application logic. In some cases, the web server protocol may not be enabled in the site settings, and the site can show up ‘HTTP Error 503.’
  3. Issues related to the user Identity of application Pool – An application pool is associated with a user identity, which allows you to run that application pool under a unique account. This user account can get locked at times, can have its password expired, or may not have adequate privileges to run the application pool. Any of these issues can tamper with the website functioning.
  4. Application pool running out of RAM or other server resources, causing it to crash, often lead to ‘HTTP Error 503.’
  5. Server migrations have also seen to have caused such errors in the website, if the IIS configuration settings of two servers are not compatible with each other, which can affect domain performance.

[ You don’t have to lose your sleep over server errors. Our expert server support specialists monitor & maintain your servers 24/7/365 and keep them rock solid. ]

How to resolve IIS “HTTP Error 503. The service is unavailable.” error

To pinpoint the actual cause of the 503 error, we examine the System event logs, which gives a hint towards what is the reason for the error. Based on that, we follow various debugging methods to resolve it.

If the error is due to a stopped application pool, then usually starting it would resolve the issue. From the IIS Manager -> Application Pools node, right click on the DefaultAppPool to check the status.

On noticing that the service is stopped, we start it. If the service is running, we try restarting it and the error would be gone. But in most cases, the fix may not be as simple as that.

In cases where the application pool crashes frequently, restarting it all the time is not the right way to fix it. We monitor the server and debug further into what is causing the application pool to crash.

For websites that are resource-intense, it is always better to assign a dedicated application pool for that domain. Another aspect we check and fix the settings of application pool and site, such as enabling the relevant protocol.

One of the key issues many fail to notice, is the user identity settings. We check the account settings and password of the identity and confirm that it is working fine. If mismatch noted, we would update the settings.

However, in this specific scenario, the issue was due to inadequate permissions of the application to run, which caused the error. By reconfiguring the application pool to run with a higher privileged identity, we were able to resolve the issue.

To avoid resource crunch leading to application crashes, we also optimized the IIS server and could see improvement in the capacity to handle connections with lesser CPU usage.

Use your time to build your business. We’ll take care of your servers. Hire Our server experts to resolve and prevent server issues. ]

At Bobcares, our 24/7 Support Engineers constantly monitor all the services in the server and proactively audit the server for any errors or corruption in them.

With our systematic debugging approach for service or other software errors, we have been able to provide an exciting support experience to the customers.

If you would like to know how to avoid downtime for your customers due to errors or other service failures, we would be happy to talk to you.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure./p>

SEE SERVER ADMIN PLANS

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Contents

  1. Cause of HTTP Error 503
  2. Rapid-Fail Protection
  3. Debugging HTTP Error 503
  4. Fixing HTTP Error 503
  5. Common 503 substatus codes
  6. Conclusion
  • Author
  • Recent Posts

Surender Kumar has more than twelve years of experience in server and network administration. His fields of interest are Windows servers, Active directory, PowerShell, web servers, networking, Linux, virtualization, and Kubernetes. He loves writing for his blog.

Latest posts by Surender Kumar (see all)

  • Kubernetes DaemonSets — Wed, Sep 6 2023
  • Static Pods in Kubernetes — Fri, Sep 1 2023
  • Encrypt Kubernetes Secrets at rest — Mon, Aug 28 2023

Cause of HTTP Error 503

HTTP Error 503 is another very common error you might face with an IIS-hosted website in addition to the 500 – Internal server error.

HTTP Error 503. The service is unavailable

HTTP Error 503. The service is unavailable

The primary reason for this error is a stopped or disabled application pool. The application pool is the IIS component that initiates a worker process, which then allows the web server to process incoming requests for a website. When something is wrong with the application pool, the web server throws an HTTP Error 503.

Rapid-Fail Protection

There can be various reasons for an application pool failure, such as an unhandled exception in the code, an expired password for the application pool identity, or something else. By default, IIS is configured to disable a malfunctioning application pool if its worker process faces five consecutive crashes within a period of five minutes. This setting is known as Rapid-Fail Protection, which is available under the Advanced Settings of an application pool. This is shown in the following screenshot:

Viewing or modifying the rapid fail protection setting for an application pool

Viewing or modifying the rapid fail protection setting for an application pool

  • Enabled—The value True indicates that the rapid-fail protection feature is active, which is the default. Set the value to False to disable it.
  • Failure Interval (minutes)—The time interval to specify the number of minutes (by default, 5) to count the failures for a process.
  • Maximum Failures—The maximum number of failures that are allowed within the time interval mentioned above (by default, 5).

While troubleshooting an application pool-related problem, you can modify these parameters, if needed.

Debugging HTTP Error 503

To determine the exact reason why the application pool is disabled or stopped, open the Event Viewer, navigate to the System log, and look for error or warning events whose source is Windows Process Activation Service (WAS). WAS is responsible for starting/stopping the application pool and keeping track of worker processes in the IIS.

The following screenshot shows that the application pool is disabled because its identity is invalid:

Checking the system log to identify the cause of application pool failure

Checking the system log to identify the cause of application pool failure

If you couldn’t find anything in the System log, take a look in the Application log since the ASP.Net-related exceptions are logged there. As discussed above, when a worker process experiences five fatal errors or exceptions within five minutes, rapid-fail protection kicks in and automatically disables the faulting application pool.

Based on event logs, if you conclude that the reason for application pool failure is a bug in the application code, but you still want to keep the application pool running until your developer fixes it, you could temporarily adjust the behavior of rapid-fail protection, either by increasing the Maximum Failures or the Failure Interval to a higher value. You could even disable this feature by using the following PowerShell command:

(Get-IISAppPool awesomewebsite.com).failure.rapidFailProtection
Set-WebConfigurationProperty '//*[@name="awesomewebsite.com"]//failure' -Name rapidFailProtection -Value $False

Viewing and disabling the rapid fail protection for an application pool with PowerShell

Viewing and disabling the rapid fail protection for an application pool with PowerShell

Remember that the rapid-fail protection feature is there for the safety of the web server, so disabling it shouldn’t be considered a solution to the problem. Instead, fixing the underlying cause (or bug causing the behavior) in the application code is really important. Anyway, disabling it sometimes comes in handy if developers are taking longer to fix the bug; meanwhile, you want to keep the web application up and running. Once rapid-fail protection is disabled, the web server won’t disable the faulting application pool, and visitors will no longer see HTTP Error 503.

Fixing HTTP Error 503

A simple resolution for HTTP Error 503 is to start the application pool corresponding to your website. If you get an application pool identity-related error or warning, make sure the username and password for the identity are correct. If a custom username is used, make sure its password is not expired. If possible, set the password to never expire for that user.

If the application pool stops repeatedly but there is no application pool identity-related error in the system log, the issue is likely due to some fatal error or unhandled exception in the code. In that case, the application log can give you some useful insights. The following screenshot shows a typical error logged in the application log that occurred due to an unhandled exception:

Checking the application log to identify the cause of application pool failure

Checking the application log to identify the cause of application pool failure

If you see such errors or warnings, notify your application developers, and ask them to fix the exception. If needed, share the detailed error message recorded in the event log.

Common 503 substatus codes

The following table covers the common HTTP 503 substatus codes, along with their possible causes and troubleshooting advice:

Status Code Possible Cause Troubleshooting Advice
503.0 The application pool is unavailable The application pool is either stopped or disabled. To fix this error, start the application pool corresponding to your website. If it fails repeatedly, check the event log to understand why it is failing. We covered how to fix this error above.
503.2 The concurrent request limit has exceeded The appConcurrentRequestLimit is a serverRuntime attribute that specifies the maximum concurrent requests (with a default value of 5000) that can be queued for application. The 503.2 error indicates that this limit has been exceeded. To resolve this error, you can increase the value using the following command:

%SystemRoot%\System32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000

If you get ERROR ( message:Unknown attribute «appConcurrentRequestLimit». Replace with -? for help. ) while running this command, use the following command instead:

%SystemRoot%\System32\inetsrv\appcmd.exe set config /section:system.webserver/serverRuntime /appConcurrentRequestLimit:100000
503.3 The ASP.NET queue is full The requestQueueLimit attribute specifies the maximum number of requests (with a default value of 1000) that can be queued by the ASP.NET process. When this queue is full, the 503.3 error is returned. To resolve this error, set the Queue Length attribute to a higher value in the application pool’s advanced settings. See this image for reference. Usually, exceeded queue length is a sign of a server unable to keep up with the requests. Therefore, you could use performance counters to understand why the server is struggling.
503.4 The FastCGI queue is full This error occurs when the FastCGI process queue is full. To fix this error, increase the value of the Queue Length attribute for your FastCGI process. To do so, open the IIS Manager, click the server name, and double-click FastCGI Settings. Now, double-click the FastCGI process for the particular PHP version that your application is using, and increase the value of Queue Length. See this image for reference.

Subscribe to 4sysops newsletter!

Conclusion

You can see that, like most IIS errors, HTTP Error 503 can be fixed with the help of detailed errors and failed request tracing. However, in the event of application pool-related errors, the HTTP.sys driver throws the 503.0 error because the application pool isn’t available to handle the request. Thus, the detailed error or failed request tracing rule is not even triggered. In such situations, you can rely on Windows event logs to troubleshoot.

Понравилась статья? Поделить с друзьями:
  • Iis ошибка 500 внутренняя ошибка сервера
  • Iis ошибка 405
  • Ignition on ошибка jaguar xf
  • Illegal use of floating point c ошибка
  • Importrange ошибка загрузка данных