đ ~1 min read
Table of contents
Symptom & Impact
The World Wide Web Publishing Service (W3SVC) on Windows Server 2019 fails to start, returning all hosted sites unreachable. HTTP/HTTPS connections drop and dependent monitoring agents flag outages. Browsers display connection-refused while application pools remain idle until the parent service initialises successfully.
Environment & Reproduction
Reproduce by restarting W3SVC after an IIS configuration change or hostfix install. Verify state, the bound HTTP.sys reservations, and recent System log entries.
Get-Service -Name iis
Get-WinEvent -LogName System -MaxEvents 40
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
Root Cause Analysis
Root causes include a corrupt applicationHost.config, port 80/443 captured by another listener, missing HTTP.sys driver registration, or WAS dependency failure after servicing.
Quick Triage
Confirm the service state and read the most recent error events before any reconfiguration attempt.
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
Inspect the System and IIS configuration logs, then check HTTP.sys bindings and verify applicationHost.config integrity.
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
Reset HTTP.sys reservations, restart the dependency chain WAS â W3SVC, and let IIS rebuild port bindings cleanly.
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 config is corrupt, restore applicationHost.config from the IIS history store and reattempt service start.
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
W3SVC and WAS both report Running, sites bind without error, and the System log shows no fresh W3SVC failure events.
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
Stop W3SVC, revert applicationHost.config to the previous good snapshot, and restart services to the known baseline.
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
wbadmin get versions
# Restore previous configuration export if available
Prevention & Hardening
Monitor IIS config changes, keep the applicationHost.config history retention high, and validate listener bindings during change windows.
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
Related to event 7024 service errors and HTTP.sys event 15005 binding conflicts.
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 documentation for IIS service startup, HTTP.sys reservations, and applicationHost.config recovery 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.