Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am running Windows 7 RC1. I have multiple issues getting IIS to work on my system and today when I installed a new application and I tried to load it using http:\localhost\MyApplication I get absolutely no errors and I get no page load. Just a pretty, white blank page.

I did some digging and I found something about some other process listening on port 80 so I did a scan using netstat -aon | findstr 0.0:80 and discovered that PID 4 was listening on that port.

PID 4 does not show in task manager so I fired up Process Explorer and it showed me that PID 4 is the System process. (Multiple google searches seems to indicate that System always uses PID 4).

Since then I am basically stuck. I have no idea why System needs port 80 and what to do about it.

If you google the following strings you will find two helpful Experts-Exchange articles at the top of the search results and you can read them for some helpful information.

(If I gave the direct URL to the pages then Experts-Exchange would ask you to pay...but when you click on the results from a google search you can scroll all of the way to the bottom to read the exchanges.)

Here are the google searches...
"System Process is listening on port 80 (Vista)"
"SYSTEM Process is listening on Port 80 and Preventing IIS Default Website from Running"

The last entry from the first result showed how to do a trace of http.sys at the following URL:

http://blogs.msdn.com/wndp/archive/2007/01/18/event-tracing-in-http-sys-part-1-capturing-a-trace.aspx

Trace showed nothing useful. Any thoughts?

share|improve this question
    
Same problems here, except, I tried all answers as suggested and nothing. I can't just start shutting down services because this is an off-site cloud server. –  Jerry Dodge Apr 2 '12 at 6:30
    
Did you mean that you are running Windows 7 SP1, and not RC1? –  cmorse Jul 27 '12 at 17:28
2  
Are you running Skype? support.skype.com/en/faq/FA148/… –  Plutext Aug 4 '12 at 23:17
    
Probably that does not actually solve your problem, anyway you can change the Apache port to 8080... Well, that is not a solution, but may work temporarily until you get the proper solution... @rakslice solution solved the problem to me –  Girardi Mar 1 '13 at 22:46
    
The skype thing is the solution! shutdown skype and start apache. done! –  Erwinus Dec 24 '13 at 20:21

6 Answers 6

up vote 19 down vote accepted

This post on Getting Apache to run on port 80 on Windows 7 describes your point.

It seems the 'http.sys' (Windows Remote Management?) service is enabled by default in Windows 7.
Run through the comments on that link for some more notes...

the hypen-site does not necessarily have the only answers.

share|improve this answer
    
Another great article: devside.net/wamp-server/… –  thorn Mar 28 at 22:37
    
And this is still relevant today with Windows 8.1 –  Sverrir Sigmundarson Jul 29 at 8:28

'Web Deployment Agent Service' runs on port 80 as System. You might have this running if you are using WebMatrix.

share|improve this answer
    
Related link: eat.cheezburger.com/author/johnc. I uninstalled the two porgrams listed: "Microsft Web Deploy 2.0" and "Web Deployment Tool" (as well as WebMatrix itself) –  Frank Schwieterman Oct 3 '11 at 20:51
    
Related link: remkoweijnen.nl/blog/2012/01/02/… –  Remko Jan 10 '12 at 10:12
1  
See stackoverflow.com/questions/5867392 for info on how to change this port. –  tony722 Mar 25 '13 at 21:23
    
I Stopped the Web Deployment Agent Service and set it to Manual start, then confirmed that I can still Publish to IIS on this server from Visual Studio and it's all good. Port 80 is now available to me, and my other functionality still works. –  JMD Jul 26 '13 at 17:06

I have tried EVERYTHING, and this worked for me:

  1. Right click on My Computer
  2. Select Manage
  3. Double click Services and Applications
  4. Then double click Services
  5. Right click on "Sql server reporting services(MSSQLSERVER)"
  6. Select Stop ...and voila, port 80 was released
share|improve this answer
6  
+1. It was indeed SQL Server in my case. –  Assaf Levy Jan 3 '12 at 10:53
    
This worked for me too. I stopped all of the SQL related services (including this one) and port 80 was released. –  Mark Lakata Nov 20 '12 at 23:34
    
+1 but I do need SSRS running so I guess going forward I need to tell SSRS to use a different port? –  Chris Moutray Jun 28 '13 at 10:46
    
"Not using that port? I'll take that! Oh sorry did you need that? Didn't you get the memo?" –  batCattle Oct 23 at 19:48

You can stop the HTTP service temporarily from the command line:

  1. Run an administrator command prompt (e.g. Start, search for cmd, right click on it, choose "Run as administrator", approve the UAC prompt if any.)
  2. Type net stop HTTP
  3. If there are other running services that depend on the HTTP service, you'll get a list; double check to see if there's anything listed there you can't bear to do without. Or, if you're just stopping HTTP to use port 80 temporarily, make a note of those dependent services that you'll want to restart once you're done with the port. Either way, if it's okay, enter y to continue.
  4. Some dependent services might throw up stop control warnings that cancel the operation; just repeat net stop HTTP until it is stopped (i.e. until it says The HTTP service was stopped successfully.)
  5. Later on, you can restart any of the dependent services, using net start or by using the Services item in Administrative Tools, and the HTTP service will be started again automatically.
share|improve this answer
    
This is very helpful to determine the dependent services - thanks! –  Rory Jan 21 '13 at 13:11
    
this was the solution for me! –  Girardi Mar 1 '13 at 22:44
    
For me, it stopped all related services, then said "Cannot stop HTTP service", and starting net stop http again tells me to "try again later". What is wrong with my system :-) –  Tominator Jul 4 at 7:55
    
Using net stop HTTP worked for me. –  Paul Williams Sep 22 at 0:26

telnet localhost 80 returns HttpAPI/2.0 which in turn means to "Sql server reporting service". Stopping the same releases port 80.

share|improve this answer
    
I found that SQL server reporting services was also the culprit. –  J.T. Apr 6 '12 at 20:12
    
This is a useful debug tool, to use 'telnet' to get more information than a web browser will give you. Thanks. SQL server reporting services was the culprit in my case too. –  Mark Lakata Nov 21 '12 at 0:32

Take ProcessExplorer, run it, open TCP/IP properties of every process (service), find process (service) that listening to http (80) port and switch it off.

I found Autodesk EDM Server was listening to http (80) port.

share|improve this answer
3  
This doesn't work for services running inside system (ie, with a PID of 4) –  Nathan Reed Sep 4 '11 at 11:46
    
I think you are better off doing 'netstat -anbo'. It will tell you straight up what is on port 80 ... except if it is PID 4. –  Mark Lakata Nov 21 '12 at 0:35

protected by studiohack May 15 '11 at 0:41

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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