For testing, I set up a binding on one of the sites for 127.0.0.1:8080. When I browsed to this address on the server, the site loaded, so at least IIS wasn't completely dead.
This led me to suspect that IIS wasn't listening on the machine's other IP addresses. I ran a quick netstat to confirm this.
Sure enough, IIS was only listening on 127.0.0.1.
There are two ways to remedy this. I performed these steps on a Windows Server 2012 R2 machine, but they should work on pretty much any version of Windows Server.
Method 1: Delete the 127.0.0.1 Listener (Recommended)The easiest way to fix this is to simply delete the 127.0.0.1 listener. This will cause IIS to listen on 0.0.0.0 (all IP addresses).
Open an elevated command prompt and run the following commands.
This will run netsh, switch to http mode, and list the current port 80 listeners, allowing you to quickly confirm what you have.
Next, run these commands.
This will delete the listener on 127.0.0.1, exit netsh, and do an iisrest.
Run netstat again and you should now see IIS listening on 0.0.0.0.
Method 2: Add Listeners for Specific IP AddressesThe second options is to add listeners for specific IP addresses. I prefer the first method as this method has the potential to create a headache down the road if someone changes the machine's IP or adds additional IPs and doesn't know that you did this.
This starts off the same as the first method, but instead of deleting the 127.0.0.1 entry, use this command to add a listener for each IP that you want to listen on.
When you're done adding listeners, do an iisreset, use netstat to confirm that the changes were successful, and you're done.