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

I'm building a web service for my company's iPhone application, and everything's been working smoothly by running tests through localhost on the development machine. I'm now in the phase where I need to test connections from other computers within the network, and any connection other than localhost gives me a 404. My internal IP, 127.0.0.1, and computername all get 404 when connecting from any computer, either the one the site's hosted on or any others on the network. Telnet can get through to port 80, and I've temporarily disabled all firewalls on this machine (I do not have control over the external firewall, but I'm only testing connections within the network)

Does anyone have a clue why this is happening? I was able to connect to the web service from other computers when hosted on a Mac via Apache, but because I'm now using a SQL Server connection I'm restricted to using IIS for Windows Authentication. Googling only provided answers related to firewalls, and mine is disabled

note: I cannot use Anonymous Authentication, but even in testing that it did not affect the issue.

share|improve this question
    
Check server response code. IIS has subcode, that will tell exact reason (e.g. 404.5 or whatever). For that either use some tool (e.g. browser extension like Firebug or built-in capabilities of the browser) that shows response headers .. or better check IIS web log for that site. At very least it will give you good idea where to move next (i.e. be it Authentication reason (which is most likely the case) or some other issue). –  LazyOne Jun 6 '12 at 15:33
    
Well, trying to access 127.0.0.1 from another computer will not point at your computer. Understanding that should be your first step on the path to enlightenment. Checking your IIS configuration to make sure it's serving the site on some IP other than localhost should probably be your second step... –  voretaq7 Jun 6 '12 at 16:17

1 Answer 1

up vote 2 down vote accepted

It's not real clear if you are running on a sever or a desktop. I'm assuming you are running on a desktop with Visual Studio. If that is the case, the built-in Visual Studio web server, "Cassini" does not accept remote connections AT ALL! Try downloading IIS Express or actually spinning up IIS on your machine instead, those will allow remote connections.

Aslo, your explanation of switching from Apache to IIS because of Integrated Authentication to the Database doesn't make much sense. Why not just use the MSSQL drivers for your language that support MSSQL? Here is the PHP site: http://blogs.msdn.com/b/sqlphp/

Provide more detail next time and you will get a better response.


UPDATE: Based on your clarifications the following is where I would start...

  1. Is the default website turned on? If so the default bindings there are *:80, so all requests on port 80 get served by the server. Test to make sure at a minimum you get the IIS Welcome page when accessing it remotely. If so then....
  2. Check the IIS Site Bindings, at it's simplest level make sure that your website/application accepts *:80, so all traffic on port 80. This will conflict with the default web site so turn that off first.

If that doesn't work you may have some underlying issues either with the firewall, double check it is truly off or has the HTTP excetion turned on and then I would look to DNS and or Network issues after that.

share|improve this answer
    
The service is written in PHP (so I'm using NetBeans, not Visual Studio) and hosted through IIS on a Windows 7 desktop. It's designed as a database intermediary to work with an enterprise-level iPhone app that will never communicate outside an intranet –  Rembrandt Q. Einstein Jun 6 '12 at 16:03
    
Bindings did the trick! The HTTP binding was set to localhost:80 (I think as part of truobleshooting another issue that turned out to be unrelated to bindings), so when I set it to *:80 it's now working as it should, thanks! –  Rembrandt Q. Einstein Jun 6 '12 at 16:30
    
Cool deal! Glad that worked. –  Brent Pabst Jun 6 '12 at 16:35
    
Just spent an hour with the exact same problem, the binding was set to localhost:80 for some reason. This answer led me to the fix, thanks! –  Tormod Hystad Sep 26 '13 at 13:12

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.