Fix for The World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://x.x.x.x:80/ for site 1. The site has been disabled. The data field contains the error number.

System log Event: 1004 Source: IIS-W3SVC Error received when trying to start the stopped web site: 

The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)

To verify nothing else is using the x.x.x.x:80 IP address and port (which would be a different issue), launch administrative command prompt and type:

netstat -ano |findstr 80

Verify no other process is listening on the x.x.x.x IP and port 80 (or whatever port the web site is running on).  If you are running the affected web site on a port other than 80, substitute that port number in the netstat command listed above.  If something is listening on that IP and port when the web site is stopped, this is probably not going to fix your problem.

FIX:

From administrative command prompt type:

net stop http

In regedit browse to

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList

If an IP address is listed in the ListenOnly List, change the IP address to 0.0.0.0

From administrative command prompt type:

net start http

From the services applet , restart the World Wide Web Publishing Service

Restart the affect web site by opening Server Manager > Roles > Web Server (IIS) > Internet Information Services (IISM) Manager > Your Server Name > Sites.  Highlight the affected site and select Restart.

My issue was caused by an old, invalid IP address being specified at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList.  This happened because I had previously ran the web site on a different IP address on this server.

See KB 890015 details on the solution.