If your application can’t start anymore on port 80 or you see HTTP Error 404. The requested resource is not found. it looks like http.sys placed reservation of port 80 and your application can’t start anymore.
In most cases this could happen after Windows Update or SCCM agent pushing updates and the agent won’t do the proper cleanup of reserved HTTP namespace.
For example tomcat, apache, Nginx won’t be accessible if using port 80. To verify something is listening on your desired port you can see the output of:
netstat -ab | more
resmon.exe - Network - Listening Ports
If you will see System is using this port you must delete the reservation of such port:
netsh http show urlacl
You should see in Reserved URL port 80 like this:
Reserved URL : http://+:80/Temporary_Listen_Addresses/ User: \Everyone Listen: Yes Delegate: No SDDL: D:(A;;GX;;;WD) Reserved URL : http://+:80/0131501b-d67f-491b-9a40-c4bf27bcb4d4/ User: NT AUTHORITY\NETWORK SERVICE Listen: Yes Delegate: No SDDL: D:(A;;GX;;;NS) Reserved URL : http://+:80/116B50EB-ECE2-41ac-8429-9F9E963361B7/ User: NT AUTHORITY\NETWORK SERVICE Listen: Yes Delegate: No SDDL: D:(A;;GX;;;NS)
If you do not recognize them delete them you can delete them (or disable BranchCache):
netsh http delete urlacl http://+:80/Temporary_Listen_Addresses/ netsh http delete urlacl http://+:80/0131501b-d67f-491b-9a40-c4bf27bcb4d4/ netsh http delete urlacl http://+:80/116B50EB-ECE2-41ac-8429-9F9E963361B7/
Reboot the machine and now your application should be able to bind port 80 back.
The first URL is used by the Windows Communication Framework; this web page tells you how to modify or delete it.
The second one is assigned to [MS-PCHC]: Peer Content Caching and Retrieval: Hosted Cache Protocol, which appears to be used for subnet-level peer caching as part of Windows BranchCache.
The third one is assigned to [MS-PCCRR]: Peer Content Caching and Retrieval: Retrieval Protocol, which also part of Windows BranchCache.https://devblogs.microsoft.com/oldnewthing/20180703-00/?p=99145