5

Possible Duplicate:
How to find exe listening on port?
What is using port 80?

I need to setup a local webserver that I made and bind it to 127.0.0.1:80. However, I can't seem to figure out what's using up the port 80 of this laptop. I've got IIS installed but I've already disabled it. Now, however, instead of getting the usual IIS welcome page that I didn't change, when going to 127.0.0.1 on my browser, I get the following:

enter image description here

Even if I go to the site directories I've set up in IIS before, it will still show this error which confirms my belief that I have successfully disabled IIS. I've been searching around and found this SU thread and tried netstat -o. But as you can see below, there is no PID associated with port 80 which baffles me even more.

enter image description here

I also tried using netstat -ab -p tcp -n but it gives off an error. See below image.

enter image description here

So yeah, I'm out of ideas. Can anyone help me figure out what is using port 80? And also, why does it seem like there's a ghost web server running? I already checked Process Explorer and XAMPP isn't running either. In fact, i can't see anything that even resembles a web server on the process list. I can personally identify most of the processes running such as Google's Music Manager, iTunes Helper, etc.

This is on a Windows 7 32-bit setup.

0

2 Answers 2

2

Specific solution to this problem:

Stop SQL Server or any other webservices or related IIS services (i.e. "SQL Server Reporting Services" - See OPs response in comments below) that might be running. Check you running services using 2 or 3 below. Check the comments as well for how we troubleshot this in more detail.

I would also personnaly recommend using a virtual machine running a LAMP platform then running a WAMP type platform on your development box directly.

If You are troubleshooting a similar issue, you can try these steps

Here is not an exact solution, but it might help, respond and I will update as we go:

  1. Capture Network Traffic:

    Download wireshark, install and get it up and running. Select your network interface and start capturing traffic. Open your browser and load the local site. Even though its on the local interface, Wireshark should still capture it. If you look look through all the various fields of the actual HTTP response, you might find the name of the application specified in the server or some other clues that can help you identify what server is providing that web page. In the HTTP traffic you might be able to identify the server name see this entry on Wikipedia:List of HTTP headers, especially the "server" field.

    Update: Per Scott Chamberlain's comment below, on Windows capturing from the local host with Wireshark can be a pain (but here's how to do it per his comment). As an alternative see 5 below. Instead, it might be eaiser to work with a proxy tool like Fiddler, Paros Proxy, Burp Proxy, etc which will let you intercept traffic going both ways to read the raw HTTP.

  2. Process Monitor

    You tried Process Explorer, but Process Monitor from sysinternals might be a little more helpful in this case. This will show you files read as you perform activity. Something had to be responding.

  3. Running Processes

    It sounds like you have already looked at some running processes, but have you checked out all the running services? You can get information on running services using any of the following options

    • On start menu type "services.msc" and explore graphically
    • On the command line type "tasklist /svc"
    • On the command line type "net start"
  4. Use a http diagnostic tool: wfetch from Microsoft

    This tool can help you deal with the raw connections and might be a little easier than using wireshark at noted above, but it accomplishes the same goal: find out what information is being returned in the raw HTTP traffic.

  5. Using the Developer tools in Chrome Here is a screenshot of what I am talking about below in the comments: Sample of network filtering with Chrome Developer Tools

9
  • I have Fiddler2 on here, will that work the same as wireshark?
    – Propeller
    Aug 28, 2012 at 4:36
  • I've used Fiddler2 and found this on the raw response: i.imgur.com/D1hfL.png
    – Propeller
    Aug 28, 2012 at 4:40
  • Any proxy should work, you could also use the debug tools in chrome (F12) [or FireBug in Firefox, DragonFly in Opera]. You can use the "network" tab to view the raw headers there as well.
    – Eric G
    Aug 28, 2012 at 4:41
  • So your server is server: Microsoft-HTTPAPI/2.0
    – Eric G
    Aug 28, 2012 at 4:46
  • 1
    Just a FYI, you can't capture localhost with wireshark unless you do a lot of extra work Aug 28, 2012 at 7:45
4

IIS doesn’t listen directly for HTTP requests on modern versions of Windows. Rather the core of HTTP Is done by the driver http.sys. You can list the currently configured addresses/ports/URLs with the command

netsh http show servicestate

If there is nothing configured for the URL /, then http.sys will generate the 404 NOT FOUND response rather than providing any specific application or service.

2
  • 1
    +1 Also, the accepted answer is wrong.
    – kinokijuf
    Aug 28, 2012 at 14:37
  • @kinokijuf +1 to your plus one. I wouldn't have tried this if it wasn't for your comment. Definitely the right answer
    – Onimusha
    Nov 7, 2013 at 12:48

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