81

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?

7
  • 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. Apr 2, 2012 at 6:30
  • Did you mean that you are running Windows 7 SP1, and not RC1?
    – cmorse
    Jul 27, 2012 at 17:28
  • 4
    Are you running Skype? support.skype.com/en/faq/FA148/…
    – Plutext
    Aug 4, 2012 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, 2013 at 22:46
  • The skype thing is the solution! shutdown skype and start apache. done!
    – Codebeat
    Dec 24, 2013 at 20:21

6 Answers 6

28

This post on Getting Apache to run on port 80 on Windows 7 (internet archive) 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.

5
  • 2
    Another great article: devside.net/wamp-server/…
    – thorn
    Mar 28, 2014 at 22:37
  • 2
    And this is still relevant today with Windows 8.1 Jul 29, 2014 at 8:28
  • 3
    The site is offline. Can you add the essential information to the answer?
    – fixer1234
    Aug 7, 2015 at 8:11
  • 4
    For me it was the World Wide Web Publish Service - was set to automatic by default, and must use port 80.
    – rockerston
    Dec 31, 2015 at 18:46
  • 1
    Upgraded from windows 7 to windows 10 and it turned on World Wide Web Publish Service to automatic. Crazy because I don't even use IIS.
    – Phil_1984_
    Sep 7, 2016 at 18:16
49

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

5
  • 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) Oct 3, 2011 at 20:51
  • Related link: remkoweijnen.nl/blog/2012/01/02/…
    – Remko
    Jan 10, 2012 at 10:12
  • 1
    See stackoverflow.com/questions/5867392 for info on how to change this port.
    – tony722
    Mar 25, 2013 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, 2013 at 17:06
  • 1
    net stop "Web Deployment Agent Service" freed up 80 for me. Feb 20, 2016 at 20:52
46

Open Services.msc and stop this service "Sql server reporting services(MSSQLSERVER)"

enter image description here

I had tried EVERYTHING, but that worked for me:

further instructions on how to stop that service are below

  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
6
  • 7
    +1. It was indeed SQL Server in my case.
    – Assaf Levy
    Jan 3, 2012 at 10:53
  • This worked for me too. I stopped all of the SQL related services (including this one) and port 80 was released. Nov 20, 2012 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? Jun 28, 2013 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, 2014 at 19:48
  • 1
    @AssafLevy your comment is a disservice to people and clouds things and might make some think the answer isn't as good as it is. It's not SQL Server, it's SQL server reporting. SQL server runs on 3306. SQL server reporting is the thing that is the issue and runs on port 80
    – barlop
    Dec 19, 2016 at 0:15
24

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 (open it more quickly by Win+R running services.msc) where you can pick the services from a list, and the HTTP service will be started again automatically.
7
  • 1
    This is very helpful to determine the dependent services - thanks!
    – Rory
    Jan 21, 2013 at 13:11
  • this was the solution for me!
    – Girardi
    Mar 1, 2013 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, 2014 at 7:55
  • Using net stop HTTP worked for me. Sep 22, 2014 at 0:26
  • If you're getting a try again later message, you may be running the Microsoft Web Deployment Service. support.microsoft.com/kb/2597817 If you're actually using that to maintain IIS you probably didn't want to be stopping HTTP in the first place =).
    – rakslice
    Feb 5, 2015 at 21:18
3

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

2
  • I found that SQL server reporting services was also the culprit.
    – J.T.
    Apr 6, 2012 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. Nov 21, 2012 at 0:32
0

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.

2
  • 3
    This doesn't work for services running inside system (ie, with a PID of 4)
    – N Reed
    Sep 4, 2011 at 11:46
  • 1
    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. Nov 21, 2012 at 0:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .