Error 0x80070020 when you try to start a Web site in IIS 7.0

At times you may notice that one or more Web sites are not started in IIS 7.0. If you try to manually start the Web site, it may fail with the following error message:

Internet Information Services (IIS) Manager - The process cannot access the file because it is being used by another process.

(Exception from HRESULT: 0x80070020)

Common Scenario

This is IIS 7 in Windows Vista Ultimate. The web site is stopped and when I try to start it the error message (in subject) appears.

In EventLog(System) I get the following following errors:

Source: HttpEvent

Msg: Unable to bind to the underlying transport for [::]:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.

Cause

The error code 0x80070020 translates to ERROR_SHARING_VIOLATION (The process cannot access the file because it is being used by another process).
This issue may occur if TCP port 80 and/or 443 is grabbed by a different service.

A typical cause is when communication tools, web-based, as Skype, starts before the IIS service on the system. A quick resolution is to shut down the program, Skype, and try to start the IIS service through the administration console (MMC or dedicated [gs snap-in] from Administrative Tools).

Resolution

Run the following command from a [gs command prompt] to find the PID of the process which is using TCP port 80 and/or 443.

netstat -aon | find ":80" 
netstat -aon | find ":443"

You will see an output similar to the following. Remember the actual PID will vary from case to case.

TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       3604 
TCP    0.0.0.0:443           0.0.0.0:0              LISTENING       3320

Now using Task Manager you can easily find out to which process the above PID belongs and take appropriate action.

More Info

If you look in the System Logs, you would see the following errors are recorded.

Source: Microsoft-Windows-HttpEvent
Event ID: 15005
Description: Unable to bind to the underlying transport for [::]:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.

Source: Microsoft-Windows-IIS-W3SVC
Event ID: 1004
Description: The World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://connect:80/ for site 2. The site has been disabled. The data field contains the error number.

SOURCE

LINK (Microsoft.com)

LANGUAGE
ENGLISH

SOURCE

LINK (Iis.net)

LANGUAGE
ENGLISH