Running IIS and Apache on the same machine

I came across an odd quirk in IIS today. It uses a feature called Socket Pooling to bind to all IP addresses on a machine, regardless of if any websites are running on those IPs. This effectively stops you from running Apache and IIS on the same machine, if you want them both to run on port 80 (even if using different IPs). Websites in IIS will appear stopped, and will display the following if you try and start them:

The process cannot access the file because it is in use by another process.

Thankfully there's a quick fix. Respect to agrikk on for posting the fix. The Microsoft document describing it is here.