Troubleshooting IIS AppPool crashes (status 503) after Windows 10 Anniversary Update

IIS, Troubleshooting, Windows 10, Update

Installing the recently released Anniversary Update (version 1607) of Windows 10 seems to destabilize IIS by shutting down Application Pools, thus resulting in a 503 error when trying to run an application, which is caused by some DLLs failing to load when the worker process starts. Fortunately, the lovely folks of the interwebz are coming to the rescue!

First, check out the Windows Event Viewer (Win+X, V) to see what you need to fix: Open "Windows Logs", then "Application" and look for "Error" level entries with the source "IIS-W3SVC-WP" (may be different if the name of your IIS instance is not the default one). In the details, you will see a short message, like this:

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

Depending on your configuration, there may be different DLLs causing this kind of problem and they will occur one by one, so you will need to keep checking the Event Logs and fix the issues until your application properly starts up. To be sure, before every attempt, stop IIS and close IIS Manager.

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

  1. "C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    • Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
  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 ...".

Happy updating!

30 Comments

  • B. Stevenson said Reply

    Thank you for your post. I lost half a day to this "Upgrade".

    Thanks; it realy helped.

  • Jeff said Reply

    I sat down to do some work on my project, got the 503 and thought there goes my day. But google led me to hear and its all fixed. Thanks!

  • Rulee Chen said Reply

    It works! Thanks a lot.
    I have wasted much time on this problem until get into this article.

  • paramesh said Reply

    I have the same issue. I am runnig IIS in Windows container. Could you help me how to do this in powershell. Because WIndows container doesn't have gui

  • Benedek Farkas said Reply

    Hi paramesh,

    I don't know from the top of my head, but you can try (re)installing them from PS using Web Platform Installer. Or if you have installed those from Web Platform Installer in the first place, then you probably still have the .msi installers on your machine (for example on my machine they are under "C:\Users\Benedek\AppData\Local\Microsoft\Web Platform Installer\installers") - in that case you can repair them from PS using "msiexec" with the "fa" switch (which runs a forced repair).

    This command works on my machine for URL Rewrite 2, for you the path might be different:
    msiexec /fa "C:\Users\Benedek\AppData\Local\Microsoft\Web Platform Installer\installers\UrlRewrite2\6A98B994ADCC2E8D21507BF2B8BAFFB402C17395\rewrite_amd64.msi"

    For "Microsoft .NET Core 1.0.0 - VS 2015 Tooling", the installer (at least on my machine) is in one of the subfolders of "C:\ProgramData\Package Cache", so for example the latest version I have installed (differs from what's in the blogpost) is "C:\ProgramData\Package Cache\{da280276-4f5b-4918-8d40-20ca56dfa535}\DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe". "msiexec" won't be able to handle this, since it's an exe, but you might be able to just run it from PS, although I'm not sure if that'll work without GUI.

    Please let me know if it helped and if they work, then I'll add them to the blogpost.

    Cheers,
    Benedek

  • Margulan said Reply

    Thank you! I repaired IIS URL Rewrite Module 2 and it helped.

  • Joel McBeth said Reply

    I had to repair Microsoft .NET Core 1.0.1 VS 2015 Tooling Preview 2. I restarted IIS after the repair and then I had to start the app pool because it was stopped. Also, to repair in Programs and Features you first have to go to Change to see the repair option.

  • Tyler said Reply

    Worked for me. Thanks for tracking this down and documenting.

  • david said Reply

    This worked for us on IIS8 Windows Server 2012 r2

    Thanks!!!

  • Jonas W. said Reply

    Thank you soooooo much for this. Saved me a lot of time!!!

Add a Comment