Binding Issue: WWW Service did not register the URL prefix http://*:80


Sometime back I was working on an incident with a customer who was facing an issue when trying to access his application on Windows Server 2008. I will reproduce the issue using Apache for everyone’s benefit.


If you have a server that has some kind of monitoring tool which is web based or some application which needs port 80 or port 443, then you can face this issue.


Scenario:


I am installing Apache 2.2.11 on my Windows Server 2008 machine which has IIS 7 installed on it. So, wondering why I am trying to install Apache on Windows Server 2008, simply because it’s a web server.


Checkout the screenshot below. Apache will be installed on Port 80 (default setting). Sometimes some application will silently get installed on your machine on port 80.


image


After sometime, I get the following error:


image


Checked the Event Viewer and I see the Event as shown below. Looks like Apache wanted to bind itself on 0.0.0.0:80 and fails as it does not have access.


image


Opened Command prompt as an Administrator and ran “netstat –ano


image


I see port 80 is controlled by PID 4 i.e System.


Now, stopped IIS Services by firing “iisreset /stop”.


Started Apache 2.2 service from Services.msc and fired “iisreset” again.


Opened, IIS Manager and I see all websites on port 80 stopped.


image


Check the Event Viewer


image


image


OR


image


Run “netstat –ano” and this is what I see:


image


PID 1256 or Apache HTTP Server has control over port 80 and hence the issue.


image


So what is the issue, checkout the article: You receive a “The process cannot access the file because it is being used by another process” error message when you try to start a Web site in the Internet Information Services MMC snap-in.


<snip>


Typically, this issue occurs when one or more of the following conditions are true:



  • Another process is using port 80 or port 443 on the computer that is running IIS. By default, IIS uses port 80 as the default TCP port and port 443 for Secure Sockets Layer (SSL).

  • The ListenOnlyList registry subkey is not configured correctly on the computer that’s running IIS.

</snip>


Solution:



  1. Run Apache on a different port i.e. other than port 80

  2. Get a new IP Address and configure IIS to run on a particular IP Address by configuring ListenOnlyList

On Windows Server 2008, you can use netsh to add the ListenOnlyList.


image


Verifying the same in the registry.


image


 


HTH.

Comments (0)