Windows Process Activation Service Failing - Windows 10
Solution 1:
The failure happened because WAS could not access the machine keys during startup. Upon first start after upgrade, WAS will try to create new machine keys if there isn't any, or query the old machine keys left from the old OS. In this case, there are old machine keys exist but WAS unfortunately cannot access them for some unclear reason. These machine keys are used to encrypt sensitive information in applicationHost.config or web.config (e.g. user password). WAS will not be able to start if there is no machine key it can use.
The following steps of deleting several machine keys used by IIS might help to allow WAS to start - WAS will simply recreate these keys upon start.
- Go to your RSA machine keys folder: C:\Users\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
- Find a machine key (file) whose name starts with d6d986f09a1ee04e24c949879fdb506c_*. If you open it using notepad, you should see plain text "NetFrameworkConfigurationKey".
- Backup this file to some other folder.
- Delete this file.
- Following the same steps as 2-4 to backup and delete iisWasKey: 76944fb33636aeddb9590521c2e8815a_*
- Following the same steps as 2-4 to backup and delete iisConfigurationKey: 6de9cb26d2b98c01ec4e9e8b34824aa2_*
- Manually start WAS
- Open a command prompt through "run as administrator".
- net start was
Solution 2:
For me this started after running Windows Update yesterday. Installed updates since then:
- Feature update to Windows 10, version 1709
- Update for Windows 10 KB4041994
- 2018-01 Cumulative Update KB4056892
Starting the Windows Process Activation Service (WAS) yielded this error:
Error 13: The data is invalid.
From the System event log:
The Windows Process Activation Service (WAS) failed to execute initialization for offline setup. The data field contains the error number [8007000D].
No idea what was happening. I verfied my administration.config
, applicationHost.config
and redirection.config
contained the expected data.
I tried reverting to automatically backed up configuration files from C:\inetpub\history
, to no result.
In the end I took those steps:
Backup all configuration files from
C:\Windows\System32\inetsrv\Config
.Deleted everything HTTP related by unchecking the following from Windows Features (do take a screenshot of which ones are installed so you can easily reinstall the same modules afterwards):
- Under .NET Framework 3.5, don't uncheck the Framework itself:
- WCF HTTP Activation
- WCF Non-HTTP Activation
- .NET Framework 4.7 Advanced Services
- IIS
- IIS Hostable Web Core
- Windows Process Activation Service
Reboot.
- Deleted the remaining contents from
C:\Windows\System32\inetsrv
. - Reinstall all uninstalled features from above.
- Reinstall the URL Rewrite Module
- Carefully put back the relevant elements from under the
<applicationPools>
and<sites>
elements from the backed upapplicationHost.config
into the newly createdC:\Windows\System32\inetsrv\Config\applicationHost.config
. - Execute an
iisreset
from an elevated command prompt just to be sure.
And hurray, all my development sites are up again.
After this I compared the backed up and new applicationHost.config
files and could not spot any major differences. In fact, when I dropped the backed up applicationHost.config
into the Config directory and running another iisreset
everything still worked, so I guess it wasn't that file causing the trouble after all.