ChatGPT解决这个技术问题 Extra ChatGPT

HTTP Error 503. The service is unavailable. App pool stops on accessing website

There are number of posts on this and I have tried many a things by now. But to no avail. Myself a Winforms Developer basically, started working on this Web stuff few days back as my company is taking Web initiatives.

I have a ASP.Net project and I want to host it on local IIS. In Project properties -> Web settings I chose Use Local IIS Server and gave a url as localhost/MyApp. I tried accessing it on my firefox browser and received error as HTTP Error 503. The service is unavailable.

Previously I got many other errors and I one by one fixed them all. But struck with this one. These are the settings I have in my project

Application Pool set to ASP.Net v4.0 Classic App Pool Enable 32 bit Application property is true App Pool is started Project build property set to Any CPU for Target framework

But I would like to mention a weird behavior. Following is something that I am facing

Application Pool is Started I try to access my local website (by giving url as localhost/MyApp) I receive the error as HTTP Error 503. The service is unavailable Application Pool is Stopped

I have seen following link and I have already tried it. For the above behavior I reached here. According to this link, Computer name should not have . in it. I don't have any . in my Computer name but do have - in it. Also my domain name contains . in it. Moreover I can't change these settings as its my office laptop and our TFS settings are bound to our Domain and Computer Names.

Can anyone help me to understand whats happening? Please guide me. Thanks.

Edit

I have following code in Global.asax. Application_BeginRequest method is empty in same file.

protected override void Application_Start(object sender, EventArgs e)
{
    base.Application_Start(sender, e);
    String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
                                         System.Environment.GetEnvironmentVariable("PATH"));
    System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    MyAppLog.Initialize();
    MyAppLog.WriteMessage("Application Started");
}

Update

As per the suggestions in Comment, I am able to run the website from Cassini.

Do you have any code in your Global.asax which runs on application start? Anything which might be getting stuck in a loop? You enabled Enable 32 bit Application but are you using any 32-bit only DLLs?
What happens when you run it in Cassini?
@RGraham: I have project build property set to Any CPU. So I think used dlls should not be a problem. Please see the edit for Global.asax code. Thanks
@SimonWhitehead: No idea of whats Cassini is. I downloaded it now from cassinidev.codeplex.com. I can see some dlls and exe in downloaded files. Could you please help me how to use it? Meanwhile I will try to read on this issue from internet sources.
@SimonWhitehead: I am able to run website from Cassini.

M
Matthew Lock

One possible reason this might happen is that the Application Pool in IIS is configured to run under some custom account and this account either doesn't exist or a wrong password has been provided, or the password has been changed. Look at the advanced properties of the Application Pool in IIS for which account it uses.

Also the Event Log might contain more information as to why the Application Pool is stopping immediately on the first request.

https://i.stack.imgur.com/Eb0th.png


In my case, this was the issue. I had changed my Windows password and my local IIS for Windows 8.1 stopped working. I had to update each project in multiple places. In IIS 8, I had to update the credentials in the application pool by right clicking on the pool and clicking "Advanced settings -> Process Model -> Identity". I then had to update the Site itself by going to "Sites -> MySITE -> Advanced Settings -> Physical Path Credentials"
Even if the account exists and the password is correct, it may have been disabled; this would cause the same symptoms.
Yes, That's the solution. My account password is changed very often. And I forgot to give the new password in the "Advanced settings"
checking Event Log is the way to go, always helped me in these issues, last time i checked the event log and i found that it is a fail in loading the rewrite.dll in iis, I went to programs and features in control panel, repaired the installation, and everything went back normal.
We had a recent password change. This was the solution. For others, see screenshot here: i.imgur.com/rp8bnGy.png
1
1_bug

Ok, I have another solution for one specific case: if you use WINDOWS 10, and you updated it recently (with Anniversary Update package) you need to follow the steps below:

Check your Windows Event Viewer - press Win+R and type: eventvwr, then press ENTER. On the left side of Windows Event Viewer click on Windows Logs -> Application. Now you need to find some ERRORS for source IIS-W3SVC-WP in middle window. Probably you will see message like:

The Module DLL >>path-to-DLL<< failed to load. The data is the error.

You have to go to Control Panel -> Program and Features and depending on which dll cannot be load you need to repair another module: for rewrite.dll - find IIS URL Rewrite Module 2 and click Change->Repair for aspnetcore.dll - find Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... and click Change->Repair. Restart your computer.


This answer helped me troubleshoot a similar problem. "Service Unavailable" error fixed by removing Core 2.2 (repair alone did not fix). up vote.
The accepted answer did not help. This did. Thanks!
great answer, the log show me The Module DLL C:\Windows\System32\inetsrv\compdyn.dll failed to load. The data is the error. so I install Dynamic Content Compression
For me, it was: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error. So I installed Select Server Side Includes per this suggestion
The accepted answer did not help me either, but this one did, however, I only uninstalled the IIS URL Rewrite Module 2 and it worked...I did not repair it or reinstall it.
D
David

For my situation is that my login password changed, while the application pool still uses the old one. So just click the "Advanced Settings" of your application pool and reset your "Identity".


I would agree that this happens quite often
T
Tarun

I was facing the same problem, and debugged it using the event logs. First it said that : "The description for Event ID 5059 from source Microsoft-Windows-WAS cannot be found".

I then turned on WAS using turn windows features on/off. Then i saw this in eventvwr "Microsoft-Windows-DistributedCOM cannot be found".

Finally I gave up and deleted the App Pool (that used to stop on accessing the website) and created it again, as it is. This resolved the problem.


And if you happen to have a bunch of sites referencing the same app pool, you can use appcmd to batch-update them: appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
Worked for me too. By upgrading from 2008 to 2012, the app pools were not entirely happy.
M
Matthew Lock

Most of Time, it was occured due to AppPool Setting.

Check the following to resolve this

Check Apppool service is running. Check Identity of AppPool. Enter the new password if it has changed for that identity.

The following Images show these setting in IIS

https://i.stack.imgur.com/y9U8O.png


Z
Zoran P.

For anyone coming here with Windows 10 and after updating them to Anniversary update, please check this link, it helped me:

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

In case link goes down: If your Event log shows that aspnetcore.dll, rewrite.dll (most often, but could be others as well) failed to load, you have to repair the missing items.

Here are two specific issues we've experienced so far and how to fix them, but you may bump into completely different ones:

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".

O
Orhan Celik

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 the following resolved the issue in my case: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

Quote from the page:

Click Start, Run, type explorer and click OK. Navigate to: %windir%\system32\inetsrv\config Open the file applicationHost.config as Administrator for editing in Notepad. Edit the section and remove the following line: Edit the section and remove the following line: After you have finished editing the applicationHost.config file, save the file, then restart the IIS server using iisreset or by restarting the system.


A
Abhishek Agrawal

In my case I checked event logs and found error was Cannot read configuration file ' trying to read configuration data from file '\\?\', line number '0'. The data field contains the error code.

The error code was 2307.

I deleted all files in C:\inetpub\temp\appPools and restarted the iis. It fixed the issue.


t
thd

I had a similar issue. I solved it by adding my user to the "Log on as a batch job" policy under "Local Security Policy" > "Local Policies" > "User Rights Assignment".


S
Swapnil Kale

When I first time add the service and created the app pool for it. I did "iisreset" from command prompt, and it worked.


M
Matthew Lock

I was experiencing this error and in my case the cause was that some time ago I modified the user password, and the 503 error didn't appears till I restarted the application pool.

So I fixed it setting the new password on Applications Pools / Advanced Settings / Identity / [...] / Set... / Password / Confirm Password


h
humbads

If you can run the website in Visual Studio debugger, then might be able to see where in your code the application pool is crashing. In my case, it was a function being called recursively an unlimited number of times, and that caused a stack overflow. Note: the Windows event log and the IIS logs were not helpful to diagnose the problem.


D
Dror T

I had the same issue with iis 8.5. After searching the eventViewer under windows Logs-->applications, I realized that I'm having a permission error for the machine.config file of the .net framework located at "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config". Giving it a permission for IIS_IUSRS solved my problem (right click the file-->properties-->security-->edit-->add-->IIS_IUSRS)


S
Serj Sagan

Just to add to these Anniversary Update issues (thanks Microsoft) if the file you are missing is cgi.dll, ie your Event Viewer has

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

Then to fix this:

Go to IIS Manager Select the very top row in the Connections panel (typically your PC name) At the very bottom of the right panel, under Management, you should have Web Platform Installer Once that loads, select Products In the search type in cgi then hit Select IIS: CGI then click Add on the right and finally Install on the bottom After installing it should force you to restart your PC and you should be fixed.


Mine was the "Url Rewrite" that I uninstalled and then reinstalled. Because i got this error: "The Module DLL C:\WINDOWS\system32\inetsrv\rewrite.dll failed to load. The data is the error."
I wonder why CGI is required. I guess I have to dig into this. I excluded it from my config as I wanted to harden my IIS.
This worked for me as well, but first I had to actually install the Web Platform Installer, which is located on the right-side of the panel, after doing that 'Web Platform Installer' showed up where you said it would.
h
hussains8

To Fix the problem, Follow the steps as I faced the same issue and below solution worked for me

1- Give full Rights or at least read access rights of Folder "C:\inetpub\temp" to IIS_IUSRS

2- also check same rights given to User IIS_IUSRS of folder "C:\inetpub\wwwroot".

hope this solution works!


S
ShaneC

I had a similar issue, all my app pools were stopping whenever a web request was made to them. Although I was getting the following error in the Event Viewer:

The worker process for application pool 'appPoolName' encountered an error 'Configuration file is not well-formed XML ' trying to read configuration data from file '\?\C:\inetpub\temp\apppools\appPoolName\appPoolName.config', line number '3'. The data field contains the error code.

Which told me that there were errors in the application.config at:

C:\Windows\System32\inetsrv\config\applicationHost.config

In my scenario, I edited the web.config on deploy with an element IIS clearly dislikes, the applicationHost.config scraped the web.config and inserted this bad element and wouldn't resolve until I manually removed it


"an element IIS clearly dislikes" whats that specific element you have mentioned ??
I made this post over 4 years ago. I am not sure what element was in the web.config but that is not the point. The app pool problem that the OP describes was happening to me and I was getting back these unhelpful error messages. The cause of the above was that I had put an incorrect entry into my site's web.config. (maybe with a spelling mistake or syntax error or section that IIS didn't recognise to be valid)
d
dantheman

In addition to the steps outlined at this link from Orhan's answer, you may need to additionally remove the native module by going to IIS Manager > Server Root > Modules > Configure Native Modules. Select MfeEngine and then select Remove.


M
MartinS

Changing "Managed Pipeline Mode" from "Classic" to "Integrated" worked for me. It can be changed at Application Pools -> Basic Settings


This fixed my issue which appeared after applying the following windows KB to our windows server 2008 R2 runing IIS 7.5. ### 2019-07 Security and Quality Rollup for .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 for Windows 7 and Server 2008 R2 for x64 (KB4507420) More information: support.microsoft.com/kb/4507420 ###
s
souravds

https://i.stack.imgur.com/CfcHK.png


A
AlexLaforge

Such 503 errors were encountered on our side on Windows Server 2019 while setting up a fresh new Classic ASP website.

In fact, in the App Pool, setting ".NET CLR Version" to "No Managed code" caused the App Pool to stops 2 seconds after being started, thus generating WAS 5002 and 5021 errors in the Windows Event Log.

The solution was to put "v4.0", even if no .NET is used.


E
EvilDr

I'm late to the party, but the solution that worked for me isn't listed.

The solution for me was simply to delete the web site and application pool within IIS, and re-create them.

This is because originally I had create the site/folder first, then installed the dotnet core runtime. For some reason this failed to allow the site to start up.

Once re-created, the site came to life with none of the other suggestions being required.


H
Hakan Fıstık

Will this answer Help you? If you are receiving the following message in the EventViewer

The Module DLL aspnetcorev2.dll failed to load. The data is the error.

Then yes this will solve your problem

To check your event Viewer

press Win+R and type: eventvwr, then press ENTER. On the left side of Windows Event Viewer click on Windows Logs -> Application. Now you need to find some ERRORS for source IIS-W3SVC-WP in the middle window.

Install Microsoft Visual C++ 2015 Redistributable 86x AND 64X (both of them)

Source


N
Namig Hajiyev

In my case error message displaed in Windows Event Viewer -> Windows Logs -> Application was "The Module DLL C:\Windows\system32\inetsrv\rewrite.dll failed to load. The data is the error." Uninstalling rewrite module via installer solved the problem. I wasn't using any rewrite rules so I uninstalled rewrite module. Reinstalling the module may help the problem as well.


R
Robharrisaz

I just had this issue on some legacy servers running Windows 2008 R2. 32bit applications would crash the app pool and return a 503 without hitting the app code. The problem seems to be related to .net core module erroneously trying to load the 64bit version of the module even though the 32bit application in question was not a .net core app.

It seems that IIS still loads the module when figuring out which module to load to service the request and trying to load a 64bit version into a 32bit process is no bueno.

In the end, I had to uninstall all versions of .net core from the server and reinstall the latest (at this time 3.1.15- we're not using 5 yet). After that my 32bit apps and .net core apps could coexist on the same server.

This is the blog post that helped me resolve this after days of banging my head on it. Hopefully it helps someone out. Blog post with the solution


N
Nemanja Andric

Give full Rights rights to Folder "C:\inetpub" Work for me!