📖 ~1 min read
Table of contents
Symptom & Impact
Windows Process Activation Service (WAS) on Windows Server 2019 stalls during startup, leaving every application pool stopped. IIS-hosted APIs return 503 Service Unavailable, scheduled jobs that call internal endpoints fail, and load balancers begin removing the node from rotation.
Environment & Reproduction
Occurs commonly after Profile Service or Net.Tcp Listener changes. Validate dependency tree, recent updates, and System log around the start attempt.
Get-Service -Name iis
Get-WinEvent -LogName System -MaxEvents 40
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
Root Cause Analysis
Typical causes are corrupt WAS configuration, missing or disabled dependent services (Net.Pipe, Net.Tcp listeners), or an ACL drift on the IIS config directory after patching.
Quick Triage
Capture the current service dependency graph and confirm the failure event identifier before changes.
sc.exe query iis
Get-Service -Name iis | Select-Object Status,StartType
Get-EventLog -LogName System -Newest 30 | Where-Object {$_.Source -match 'iis'}
Step-by-Step Diagnosis
Read System log WAS events, list service dependencies, and check ACLs on the IIS configuration directory.
Get-WinEvent -LogName System -MaxEvents 50 | Where-Object {$_.ProviderName -match 'iis'} | Select TimeCreated,Id,LevelDisplayName,Message
sc.exe qfailure iis
sfc /verifyonly

Solution — Primary Fix
Restore default service dependencies, repair ACLs on the IIS config folder, and start WAS followed by W3SVC.
Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.
Restart-Service -Name iis -Force
Get-Service -Name iis | Select-Object Status,StartType
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object {$_.ProviderName -match 'iis'}

Solution — Alternative Approaches
If WAS still fails, repair the IIS feature via DISM to reset binaries and configuration providers.
sc.exe config iis start= auto
sc.exe failure iis reset= 86400 actions= restart/60000/restart/60000/run/1000
Restart-Service -Name iis -Force
Verification & Acceptance Criteria
WAS, W3SVC, and dependent listeners all run, all pools start, and HTTP probes return expected response codes.
Get-Service -Name iis
Get-WinEvent -LogName System -MaxEvents 25 | Where-Object {$_.ProviderName -match 'iis' -and $_.LevelDisplayName -eq 'Error'}
Test-NetConnection -ComputerName localhost -Port
Rollback Plan
Roll back the recent IIS update and reapply the previous applicationHost.config snapshot.
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
wbadmin get versions
# Restore previous configuration export if available
Prevention & Hardening
Baseline WAS dependencies and ACLs; monitor changes to the IIS configuration directory via auditing.
Get-Service -Name iis | Export-Clixml C:/Temp/iis-baseline.xml
Get-WinEvent -LogName System -MaxEvents 50 > C:/Temp/iis-events.txt
Get-ScheduledTask | Where-Object {$_.TaskName -match 'iis'}
Related Errors & Cross-Refs
Frequently seen with event IDs 5005, 5021, and SCM 7001 dependency errors.
Related tutorial: View the step-by-step tutorial for Windows Server 2019.
View all Windows Server 2019 tutorials on the Tutorials Hub →
Browse all common problems & solutions on the Tutorials Hub.
References & Further Reading
Microsoft Learn references for WAS troubleshooting and IIS feature repair on Windows Server 2019.
Need Expert Help?
If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today — we respond within one business day.