Windows Process Activation Service (WAS) Startup Failure: Troubleshooting “The file exists” and “Invalid data” Errors in IIS 10.0


4 views

When attempting to start the Windows Process Activation Service (WAS) on Windows 10, you'll encounter a series of interrelated errors:

Event ID 5215: WAS failed to execute initialization for offline setup (Data: 50000780)
Event ID 5005: WAS stopping due to error (Data: 50000780)
Event ID 7023: WAS terminated with "The file exists" error
Event ID 7001: W3SVC dependency failure due to WAS startup failure

Using Process Monitor (after extracting the 64-bit version), we identified the culprit file:

C:\Windows\System32\inetsrv\Config\applicationhost.config.tmp

Deleting this temporary file allowed the process to progress further, but revealed new errors:

WAS 5215 with data field: 0D000780
Service Control Manager 7023: "The data is invalid"

The IIS setup log reveals critical cryptographic container issues:

[01/13/2018 23:10:42] < !!FAIL!! > Failed to create the NetFrameworkConfigurationKey key container (result=0x8009000f)
[03/18/2018 07:44:56] < !!FAIL!! > Failed to create the iisWasKey key container (result=0x8009000f)

To resolve cryptographic key container permission issues:

1. Navigate to C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
2. Locate files named d6d986f09a1ee04e24c949879fdb506c_*
3. Take ownership as Administrators
4. Grant Full Control permissions
5. Move or delete problematic files

For systematic troubleshooting, run this PowerShell script:

# Check WAS service status
Get-Service -Name WAS

# Repair cryptographic permissions
$machineKeys = "$env:ProgramData\Microsoft\Crypto\RSA\MachineKeys"
$acl = Get-Acl $machineKeys
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "IIS_IUSRS",
    "FullControl",
    "ContainerInherit,ObjectInherit",
    "None",
    "Allow")
$acl.AddAccessRule($rule)
Set-Acl -Path $machineKeys -AclObject $acl

# Clean temporary IIS config files
Remove-Item "$env:windir\System32\inetsrv\Config\*.tmp" -Force -ErrorAction SilentlyContinue

After performing these steps:

  1. Run net start WAS in elevated command prompt
  2. Verify IIS starts successfully (net start W3SVC)
  3. Check Event Viewer for new entries
  4. Validate that iis.log shows successful key container creation

When attempting to start the Windows Process Activation Service (WAS) on Windows 10, you might encounter a series of errors in the System log:


WAS 5215: The Windows Process Activation Service (WAS) failed to execute initialization for offline setup. [Data field: 50000780]
WAS 5005: Windows Process Activation Service (WAS) is stopping because it encountered an error. [Data field: 50000780]
Service Control Manager 7023: The WAS service terminated with the following error: The file exists.
Service Control Manager 7001: The W3SVC service depends on the WAS service which failed to start...

Using Process Monitor (ProcMon), we identified that the service was failing due to a temporary configuration file:


C:\Windows\System32\inetsrv\Config\applicationhost.config.tmp

After removing this file, the error message changes to:


WAS 5215: [Data field: 0D000780]
Service Control Manager 7023: The Windows Process Activation Service service terminated with the following error: The data is invalid.

The IIS log reveals more fundamental issues with cryptographic key containers:


[01/13/2018 23:10:42] < !!FAIL!! > Failed to create the NetFrameworkConfigurationKey key container (result=0x8009000f)
[03/18/2018 07:44:56] < !!FAIL!! > Failed to create the iisWasKey key container (result=0x8009000f)

Here's the step-by-step resolution process:

1. Remove the cryptographic key container files

Navigate to:


C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\

Look for files named d6d986f09a1ee04e24c949879fdb506c_* and remove them after taking ownership:


takeown /f "d6d986f09a1ee04e24c949879fdb506c_*"
icacls "d6d986f09a1ee04e24c949879fdb506c_*" /grant Administrators:F
del "d6d986f09a1ee04e24c949879fdb506c_*"

2. Recreate the key containers

You can use PowerShell to recreate the necessary cryptographic containers:


# Remove existing containers if they exist
Remove-CmsMessage -RecipientType PublicKey -RecipientInfo (Get-CmsMessage | Where-Object {$_.RecipientInfo.Subject -like "*NetFrameworkConfigurationKey*"})
Remove-CmsMessage -RecipientType PublicKey -RecipientInfo (Get-CmsMessage | Where-Object {$_.RecipientInfo.Subject -like "*iisWasKey*"})

# Reinitialize IIS cryptographic components
Start-Process -FilePath "$env:windir\system32\inetsrv\iissetup.exe" -ArgumentList "/install SharedLibraries /nano" -Wait

After performing these steps:

  1. Check the IIS log for successful operations:
  2. 
    Created NetFrameworkConfigurationKey key container
    Created NetFrameworkConfigurationKey user key
    Set ACLs on NetFrameworkConfigurationKey
    
  3. Attempt to start the WAS service:
  4. 
    net start was
    
  5. Verify dependent services:
  6. 
    net start w3svc
    

To avoid similar issues in the future:


# Create a scheduled task to verify WAS health weekly
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-Command "if ((Get-Service -Name WAS).Status -ne 'Running') { Start-Service WAS }"'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am
Register-ScheduledTask -TaskName "WAS Health Check" -Action $action -Trigger $trigger -User "SYSTEM"

Additionally, consider implementing this monitoring script:


# PowerShell monitoring script for WAS
$service = Get-Service -Name WAS
$cryptoPath = "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"

if ($service.Status -ne "Running") {
    Write-EventLog -LogName "Application" -Source "WAS Monitor" -EventId 1001 -EntryType Warning -Message "WAS service is not running"
    
    # Check for problematic files
    if (Test-Path "$env:windir\system32\inetsrv\Config\applicationhost.config.tmp") {
        Remove-Item "$env:windir\system32\inetsrv\Config\applicationhost.config.tmp" -Force
    }
    
    # Restart the service
    Start-Service -Name WAS
}

If issues persist, consider these advanced steps:


# Full IIS reset with cryptographic component reinstallation
Stop-Service W3SVC -Force
Stop-Service WAS -Force

# Reinstall IIS cryptographic components
& "$env:windir\system32\inetsrv\iissetup.exe" /uninstall SharedLibraries
& "$env:windir\system32\inetsrv\iissetup.exe" /install SharedLibraries

# Rebuild configuration
& "$env:windir\system32\inetsrv\appcmd.exe" list config /xml | & "$env:windir\system32\inetsrv\appcmd.exe" restore config /in

Start-Service WAS
Start-Service W3SVC