Getting “The process cannot access the file because it is being used by another process” when trying to start a website
September 7, 2010 Leave a comment
Today when trying to start a website that was mysteriously stopped on my development machine, I got the following error message:
The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)
This is a very misleading error message and I spent some time looking at my running processes and checking with EMCO’s UnlockIT to try figuring out what was locking my files. Looking at the Events log gives a little more accurate error that looks like this:
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.
Msg: The World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://*:80/ for site 1. The site has been disabled. The data field contains the error number.
The actual issue is actually about the binding of the site. It you have any other process using port 80 (or whatever port you assigned to this site), you will get that error message when trying to start it.
To solve this problem, you have 2 options:
1. Change the port number for the problematic site’s binding to any available port
2. Turn off the service using the conflicting port (you can also assign a different port to that service)
All-in-all, this is a very minor problem that can be very easily resolved but the initial error message is leading us down the wrong path.
Hope this will help someone with the same issue
Note: my environment is Windows 7 x86 and running IIS 7.5
Update: Just finally found out that what took over my port 80 was Skype. No idea why and I have no intention on finding out so from now on, Skype is off.