Consider the following scenario.
- You have a computer that is running Windows 10 or Windows Server 2016 that has Internet Information Services (IIS) enabled.
- You upgrade to Windows 10 Version 1709 (Fall Creators Update) or Windows Server 2016 Version 1709.
After the upgrade, some web applications do not start, and they return the following HTTP 503 error message:
HTTP Error 503. The service is unavailable.
Also, WAS event 5189 is logged in the event log:
The Windows Process Activation Service failed to generate an application pool config file for application pool '<DefaultAppPool>'. The error type is '5'. To resolve this issue, please ensure that the applicationhost.config file is correct and recommit the last configuration changes made. The data field contains the error number.
To resolve this problem, manually delete the symbolic links that are created by Windows Update. To do this, follow these steps.
Note Symbolic links can be deleted the same as regular files.
- Open a Command Prompt window by using the Run as administrator option.
- Run the following commands:
net stop WAS /y
rmdir /s /q C:\inetpub\temp\appPools
net start W3SVC
The Windows Activation Service (WAS) creates a temporary configuration file for each IIS application pool in the C:\inetpub\temp\appPools folder during typical operation.
During an initial upgrade phase, Windows Update scans the existing folders and files (outside the Windows folder), and records their paths to be restored after upgrade. However, because the configuration files are temporary, they are deleted when WAS is stopped.
In the next phase of Windows Update, these previously scanned files and folders are copied to a temporary upgrade location. After Windows is upgraded, Windows Update creates a symbolic link to each folder that was copied to a temporary upgrade location before it tries to restore these files and folders to their original location.
However, because these temporary configuration files no longer exist, Windows Update does not remove the symbolic links.
When WAS tries to start as an IIS worker process, it does not create a temporary folder to write the configuration because of the symbolic links. Therefore, Http.Sys returns an HTTP 503 error.