Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

This is on a Windows Vista machine running IIS 7. Trying to start Default Web Site, but it says: "The process cannot access the file because it is being used by another process?

If I change binding to port 82, it works fine. So I guess something is running on 80. How do I find what it is?

share|improve this question
    
If you are still having problem ... There is a second possible cause listed on the MS support page - " The ListenOnlyList registry subkey is not configured correctly on the computer that is running IIS. " Details here: support.microsoft.com/kb/890015 –  apocalypse9 Sep 20 '09 at 2:01
    
Rebooted and problem went away :) –  epitka Sep 20 '09 at 2:19

8 Answers 8

up vote 8 down vote accepted
netstat -ab | find ":80 "

Notice the space after 80. The /b requires an elevated command prompt.

EDIT: After close inspection, piping netstat -ab into find with that search string does not display the executable that the -b switch retrieves. This is because -b displays the owning process on a new line. =( I fail. But at least the first half of the command will work. I just had to get all fancy with the find command. =)

share|improve this answer
1  
In my case it was skype that was using it. Very strange. Closed skype and then started website, website ran fine. Then started skype too. Skype running fine too. –  user70410 Apr 4 '12 at 7:47
    
Skype was guilty in my case too –  RobertTheGrey Sep 17 '13 at 9:44

The first thing I would do is open a browser to http://localhost/ and see what comes up... Then I'd check netstat of course.

share|improve this answer

I dont know on Vista but on XP you could:

netstat /a /b

on the console to check this.

share|improve this answer

Start a command prompt as an administrator and run the command netstat -ab and find the appropriate line in the output. This should tell you the executable name of the process listening on that port.

Once you have that, there's a good chance you'll have an idea of what to look for, but if you're not sure what that executable file is, you can start Task Manager, go to the Processes tab, find the process in question, and right-click it and select Properties to get more info. If there are multiple processes with that name, run netstat -ao to get the process ID.

share|improve this answer
    
This was fastest way for me, so I accepted it. However I cannot see anything on port 80. Hmmm. –  epitka Sep 20 '09 at 1:55

You can use NETSTAT -ADO to view ports in use, but unfortunately this doesn't give you the name of the application that opened a specific port. It does give you the process id, which you can use to zero in on the specific program in Task Manager.

Alternatively, you can download SysInternals' Tcpvcon program. When run, you'll see a full list of open ports as well as the programs which opened them.

share|improve this answer
1  
I don't know what you think -d might do but -o is more useful than -b as it displays the PID on the same line and doesn't require elevation. –  Neil May 22 '12 at 8:53

Sysinternals - as mentioned in Dave's post (Sorry for the wrong info on my initial post)

or

http://www.howtonetworking.com/command/openport1.htm

Describes how to do this from the command line.

share|improve this answer
    
Portmon monitors and displays all serial and parallel port activity on a system, not network ports. –  Rohan West Sep 20 '09 at 1:51
    
The tool you're linking to is for a very different kind of ports. You might have been thinking of TCPView (technet.microsoft.com/en-us/sysinternals/bb897437.aspx), which is, for the most part, netstat in a GUI. –  Michael Madsen Sep 20 '09 at 1:51
    
That is because I'm a complete idiot today. I remembered it was from the sysinternals suite and grabbed the first one from the search. Good catch- and sorry for the stupid. –  apocalypse9 Sep 20 '09 at 1:54

The other answers will tell you what has port 80 open. But this might be System if port 80 has been opened by another application using HTTP.SYS (as IIS does1).

To see what is using HTTP.SYS to listen you can use (from an elevated command prompt):

netsh http show servicestate

(This gives a lot of information.)

Also HttpCfg.exe might work (from Windows XP SP2 Resource Kit).


1 This is why even if IIS is running on port 80 it does not show up as listening on port 80.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.