Reputation: 5452
I'm trying to publish a web site with a self-created SSL certificate on my own IP. After I added the web site to the IIS and tried to run it, I get this error and I'm unable to start the web site.
Internet Information Services (IIS) Manager - The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)
What can be the reason of that problem?
Upvotes: 91
Views: 123197
Reputation: 121
If you have multiple IP addresses, are running dual stack (IPv4 and IPv6), and you try to create a HTTPS binding (443) for an IIS Website, it will attempt to listen on 0.0.0.0:443
and [::]:443
regardless of what IP address you specify for the Site HTTPS Binding.
To override this behaviour, you will need to manually specify which IP and port to listen on in HTTP.sys (Example below assumes the IP address is 10.123.123.123
):
netsh http add iplisten 10.123.123.123:443
Upvotes: 1
Reputation: 5443
In my case Skype was the culprit. Yes, you read it correctly: Skype was using port 80/443.
Below is the way to disable it-
uncheck the "use port 80 and 443 ...."
save and quit your Skype or restart your machine.
Upvotes: 13
Reputation: 13211
To further elaborate Nacho's (correct) answer, from here:
Run the following command from a command prompt to find the PID of the process which is using TCP port 80 and/or 443 (hint: for 443, it's probably Skype):
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.
Upvotes: 71
Reputation: 1462
Check this http://support.microsoft.com/kb/890015/en-us
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).
Upvotes: 115