Where did my IIS7 server go? Troubleshooting "server not found" errors

Sometimes, after provisioning a new machine, or making some configuration changes, you may find that your IIS server has gone completely missing without so much as leaving you a note.  As you desperately try to bring up your site, your browser connection times out with “server not found” or, slightly better, you get the plain 503 “service unavailable” error.
 

In these cases, a lot of the instrumentation you typically have at your disposal with application failures is not available to help you fix the problem.  But, not to worry – the solution is usually only a few steps away.  The step-by-step instructions below should help you figure out what’s wrong in minutes.

First, let’s dissect the “server not found” error, which typically looks like this: 

Server Not Found

What is it?

This error means that your browser is unable to establish a connection to the web server at the specified address.
 

Why does it happen?

The first reason may have nothing to do with IIS – your browser may be unable to resolve the server hostname you specified, or the server is unreachable because of network connectivity or firewall related issues.  If that’s not it, IIS may not be running on the target server, and if it is, your site may be stopped due to configuration issues.

How do I get rid of it?

Lets get rid of it in 3 easy steps:

STEP 1: Make sure your client can resolve the hostname to an ip address and connect to the server. 

Test it can by running the following from command line:

NOTE: Here and below you need to use a command line window running as Administrator in order to execute the commands.  To get an elevated command line window, find it in your start menu, right click, and chose "Run as Administrator"

> ping www.mywebsite.com

If you are unable to resolve the hostname, then your problem is with your client’s proxy server, hosts file, or DNS server.  If you are unable to ping the target server, your problem may be with the client’s network connectivity to the server, or the firewall.


If you can access the server over the network, the second most likely reason is that IIS is not started, or is not listening for requests on the specified hostname/port combination.

STEP 2: Make sure IIS is started.

In order for IIS to accept incoming requests, the W3SVC service needs to be running.  Make sure it is by running the following from command line:

> net start w3svc

If you see the service start, then it was not previously started and you have the answer.  If however you see an error indicating that the service is already started, you may proceed to the next step.

STEP 3: Make sure that your web site is started and is listening to requests

A site has one or more network bindings, each defined by a combination of ip address, port, and hostnames on which the site should receive its requests.  Starting with Windows 2003, IIS uses the http.sys kernel driver to listen for requests, and the W3SVC service to configure it to listen for requests on all binding endpoints associated with your site.  On IIS7, the service doing most of the work is now called WAS (even though W3SVC is till needed).  A configuration error can cause WAS/W3SVC to fail to start a site, and therefore http.sys will not receive requests on its endpoints.  Also, there is the off chance that the site definition itself is missing, or the site does not define the right bindings.

There is a quick way to check whether the site is started, and what end-points its configured to run on, by running the following from command line:

> %windir%system32inetsrvAppCmd.exe list sites

At this point, you may get a configuration error indicating malformed configuration in the sites section – in that case, you need to fix this to proceed.  Once the error has been fixed, the resulting output should include your site as follows:

SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)


If you site is not listed, well, then you know the problem.  If the site definition does not contain the proper binding (in the form of protocol/[ip-address-list-or-*]:port:[host-header-list-or-blank]), then you need to add the missing binding.

If the state shows as Unknown or Stopped, then there is a configuration error that is preventing your site from being started.  Most of the time, the event log holds the key to the exact error. 

Start the event viewer (Start>Run>eventvwr.exe), and look for an error in the “System” event log under “Windows Logs”, with “WAS” as the event source.  You may see something like this:


Event 5161:

Site 1 has no root application defined, so the site will be ignored.


This should most of the time hold the key to what you need to do to make sure the site is valid.  The following may cause your site to not be valid:

  1. The site does not contain a root application (with path = “/”)
  2. The site does not contain a single valid binding
  3. A binding is invalid or conflicts with another binding on the machine

Once you’ve made the required configuration changes, you can start the site like this:

> %windir%system32inetsrvAppCmd.exe start site "Default Web Site"


Where "Default Web Site" is replaced with the name of your site.


At this point, if your client can successfully connect to the server, IIS is started, and your site is started and is listening for requests, you should no longer be timing out with “server not found” errors when connecting to your site.

The next biggest “my server is gone” issue you may hit is the dreaded 503 “service unavailable” error, that looks like this:

Service Unavailable

To deal with this one, check out my other post about troubleshooting "service unavailable" errors.

Bonus: PortChecker tool

I put together a little tool that simplifies the initial check for site’s reachability before you go through the STEP 1 – 3 process to determine the root cause.  This tool tests TCP connectivity to the specific port on the target machine, something that the PING command cannot do.  You can use it to determine whether IIS is listening on a particular ip/port and whether you can get to it – or test connectivity to any arbitrary TCP services (since it will expose DNS, network connectivity, lack of active listening connections), such as SQL Server. 

>> Read more and get PortChecker here <<

 

50 Comments

  1. Anonymous

    Hi, I have tried the suggestions you have posted here, but I am not having much success.

    Everything was working fine until a trojan virus was
    downloaded along with tons of spyware. I finally removed all of it by using a battery of spyware removers. Now that the spyware is gone, I cannot access typical web pages. I am able to type in some web address and it will work ok. But, if I try to go to google.com, ms home page, ebay, facebook, etc., then the DNS Error or sever not found message comes up. It looks like it flashes that the site is found, but it redirects me to the infamous DNS error page.

    If I boot in safe mode, the system will allow me to access all web pages, including my home page.

  2. Anonymous

    what about the “Internet Explorer can not display the page” IE7 message when you type in http://localhost/ ?

    any clues of what is needed to use the “localhost”.
    127.0.0.1 works fine !
    “localhost” is needed by Web Development Tools like VisualStudio.

  3. Mike Volodarsky

    JPA,

    What happens when you do “ping localhost” from command line? If it doesnt resolve to 127.0.0.1, then you dont have the hosts entry configured correctly.

    Edit %windir%system32driversetchosts and add a line that maps localhost to 127.0.0.1 following the example in the file.

    Thanks,

    Mike

  4. Anonymous

    In the previous post, I covered the “server not found” error that is a common and frustrating problem that may occur for a number of reasons after a configuration change, or when deploying a new server machine. Another common “what the hell just happened”

  5. Anonymous

    IIS7逐渐向我们走来,功能丰富的同时也让排错的过程变得更加艰难。Mike Volodarsky的这篇Blog就一步一步地教会我们“像专家一样进行IIS7排错”的本领:) 这是一篇比较长的、图文并茂的文章,不难理解也非常实用,真正做到了“受人以渔”。

  6. Anonymous

    Hi there, I have a problem with my local web server. I am running on Vista with IIS 7 installed with full options currently. As I was testing my web pages on my local site, I encountered 404 problem. I then installed ASP and ASP.net for convenience and luck sake. Re-tried running dreamweaver to test my web page – A different error showed up: “An error occurred on the server when processing the URL. Please contact the system administrator”

    To be clear on the errors, the following addresses show the results:
    http://localhost/ => shows IIS 7 graphics
    http://localhost/myContacts/developers.asp => the error just mentioned above.

    Could someone please advise on to tackle this problem? My IT background is mediocre 😉

    Thank you.
    Ash

  7. Anonymous

    Hello,

    I can’t connect to my localhost or 127.0.0.1 in IE on Vista Utlimate, I just get “Internet Explorer cannot display the webpage”. When I run “%windir%system32inetsrvAppCmd.exe list sites” it returns nothing. Can anyone help? I have the WWW service running and I can connect to external sites.

  8. Anonymous

    Mike, I always enjoy your posts, very helpfull. I have an issue with IIS7 not serving up images on localhost. When I push to domain, images are fine. on localhost, nothing. all else is good, just no images.

    TIA
    jorge

  9. Anonymous

    I needed a specific user account for application pools for my application, but apparently the WPG user is no longer used. I had to go into IIS and in the Application Pool area and manually change the Identity from SpecificUser to NetworkService. After that it worked fine…

  10. Anonymous

    I have tried many different things but stil cannot get IIS7 to work on Vista Ultimate. I am getting a 503 error and on checking the event viewer, this message:

    ‘Cannot read configuration file
    ‘ trying to read global module configuration data from file ‘?C:Windowssystem32inetsrvconfigapplicationHost.config’, line number ‘0’. Worker process startup aborted.

    Can anybody help. I’ve tried uninstalling & re-isntalling via the Turn Windows features on /off.

    ‘Interestingly’ I dont have a default website though and Im guessing I should because I havent deleted it manually. However this doesn’t really help me solve the problem?

    Can anybody help? I have noticed other posts with people having the exact same problem (after an upgrade aswell) but no solution.

    Thanks Chris

  11. Anonymous

    As reported last week, the Republican party is trotting out William Weld as a potential challenger to Eliot Spitzer in New York’s 2006 gubernatorial election. Weld is the former governor of Massachusetts, but has little or no name (or face) recognition

  12. Anonymous

  13. Anonymous

    Thank You So much. Actually my default web site was in the stopped state and I had it to start it. But I have a question, after the installation of IIS, why is the Default Web Site not started automatically?

  14. Anonymous

    Normally I am one NOT to ask for help, but in this instance, I am going bonkers. I have read most of the common areas you posted but I haven’t had any luck.

    I loaded up win2008 server, added the IIS server role. I left the defaults as is. I then added a folder on C: and put the web material (HTML/ Java) there. I tested the web surfing outbound to several sites and it works fine. When I am in IIS and try to browse the website, occasionally I will see the info bar show me it resolves from networksolutions, back to my router, but stops and says “page cannot be dispalyed”. The LOCAL HOST shows the IIS 7 logo page with no prollem. I have a windows 2003 server up and running with same infrastructure, and it works fine. The APPCMD.exe shows the site in question as started and I have verified that default site and my new web site is running. Both App Pools are running. I went as far as removing the antivirus and firewall to see if it was the problem, but there is something amuck in 2008 setup.
    Paths are correct; permissions are given to IUSR, Network Service, and a boatload of others. No mention of WAS in event log. The only error was in the area where You TEST SETTINGS. Said the path could not be verified, or similar to that. If I slap in admin level user name and password, I get 2 green thumbs up, BUT, still cannot hit the site. I’d hate to revert back to 2003, but I rather do that then turn completely grey = Þ. Any suggestions? Help get the IIS 7 up and I will put a link at the bottom of my page to whatever URL you own !

  15. Mike Volodarsky

    Hi Gary,

    It sounds like your browser can make a connection to the server, if http://localhost loads and your urls in question are residing in the “Default Web Site”.

    If not, start with PortCheck to make sure your site is up and accessible.

    I would focus on getting the correct error message by following the information here, and using Failed Request Tracing if needed: http://mvolo.com/blogs/serverside/archive/2007/07/26/Troubleshoot-IIS7-errors-like-a-pro.aspx. Enable FRT for all status codes just to be sure.

    One possibility is that something in your application is causing the connection to be reset during the request. FRT should help see this if its happening.

    Thanks,

    Mike

  16. Anonymous

    Mike, Thanks for the quick reply.

    I reformatted the drive. I put on Vista Ultimate, and loaded up everything possible in IIS, minus FTP.
    I believe by loading everything up (minus FTP) that WILL create rules for just about anything to “work” in IIS 7. Sure some things still may need to be tweeked, but at least all options are available. By adding most options, I noticed that IIS then does the server side include rules for HTML and HTM, for example. One thing I DID notice was the ASAPI was DISABLED by default. I removed that disabled feature and reinstalled the handler mapping as *.dll allowed. No luck. This is like rocket science. Either it works great out of box, or its simply painful.
     
    All I need is IIS. Anything extra is “nice”. So if it is Vista Premium, Ultimate or Windows 2008 with IIS 7, its not an issue. I can load any of them, if one operates IIS alittle smoother than another.
     
    I will try the PortCheck tool tonight 9/17. I Will post results soon.
     
    Once this IS figured out, I am not shy to post the methods of how it was figured out in as much detail as necessary.

  17. Anonymous

    I ran the portcheck tool:
    ERROR Occured while connecting: A Socket operation was attempted to an unreachable network. 24.249.124.40 : 80

    – No firewall enabled
    – No antivirus installed
    – IIS with almost all features installed (minus FTP)
    – current infrastructure works with win 2003/IIS 6.0
    – Bindings in place all unassigned port 80 and web site host header.
    – application pool set to default, pointing to local account which has read permissions to web folder location.

    What in Vista Ultimate PREVENTS port 80 from being used…or what in IIS when configured, allows port 80 traffic when there is no Antispyware/malware/antivirus/or firewall installed?

    I am going to slick Vista Ultimate and load windows 2008 server back on the drive. Without any addons (Antispyware/malware/antivirus/or firewall) installed or active. I am going to load ALL IIS options up including the dreaded FTP, and if IIS refuses to play, I will be heavily tempted to slick it again and slap 2003 on it. GRRRRRR.

  18. Anonymous

    – Enabled FRT for all status codes – no entries. Set status codes in, fixed any typo errors, and lowered the time in sec from 90, all the way down to 15 sec, no log entries.
    – Still getting pesky “page cannot be displayed”
    -Trying to get htm/html and java to work in win2008 svr. All IIS options are chosen. FRT is enabled.
    -Unable to ping website, ping (websitename.com) resolves to IP but no response. Same exact thing occurs when the win2003 server is plugged in, BUT windows 2003 server works absolutely fine.

    To clarify, I have tried putting the new web site on D: partition, with bindings. No joy. I moved that folder to C:inetpubwwwroot and No Joy. I remove the hostheader and the site shows up perfectly in localhost mode. Logfiles are even generated in the w3svc when viewing new web site in local host mode.

    Does IIS 7.0 require a Virual directory? or in IIS is browsing to any folder and “binding” to it essentially the same thing?

  19. Anonymous

    Mike,
    I got it. It was a combination of issues. I shut off all THREE Windows firewall versions (domain, public, private). Additionally, My 3rd party software firewall when in “learning mode” was rejecting some packets.

    The win 2008 load automatically put the server in a power saver style config, which wasn’t good. Try trouble shooting something for a while, go to another workstation and try accssing the server and things have powered down which added to a problem. I switched to a high CPU utilization/low power saving config, and ensured everything stays up and running.

    I tweeked on a few config files. I am not at the server to tell you the exact names of them, but I ended up allowing ISAPI and one or two other functions.

    Troubleshooting the issue from the inside out was better than doing it outside-in. I forced the router to forward (not port trigger) ALL TCP and UDP ports to the server IP. The server has always had a static IP, and I removed all non essential infrastructure and workstations on that router.

    The strange thing about all of this is, that I never had the win2003 server and the win2008 server plugged in at the same time. At times I had both using the same IP/mask/GW and it would work when the 2003 IIS was plugged in, but, give that (CAT 5) connection to the 2008 IIS and it plain crapped out.

    I think a simple IIS checklist of things to look for, starting from scratch would be a big hit. Starting with IIS role selection and additional IIS selections (essentials- not just defaults !!) to ensuring the infrastructure is set to the proper IP, Mask and gateway, and if mulitple machines on the same network, proper port forwarding/triggering is done.

    Make sure any firewalls installed have “accepted” the additional role of IIS on the server and pass HTTP traffic. More than likely if people see the server cannot be dispalyed page – take heed, its probably DNS or connectivity issue, vice a IIS prollem. One additional note about setting up IIS – especially on Vista – if you choose to connect your to a PRIVATE network, which will LIMIT connectivity. When you add IIS, go to windows firewall and ENSURE your firewall has added the HTTP traffic and allows it to communicate normally. If it does not, simply start the network connection wizard over again, and make the appropriate choices.

    There were alot of notes and experiments attempted on a virgin 2008 load. so once I got it right, I slicked the drive again, and set the box back up to where it worked. It also helps to make a ghost image of the working machine/setup.

    hope this helps.

  20. Anonymous

    Hello, i am glad to read the whole content of this blog and am very excited and happy to say that the webmaster has done a very good job here to put all the information content and information at one place.

  21. Anonymous

    Do you need space for your business to collaborate on projects, store information for easy retrieval and to track orders, deliveries and work hours? You’ ll want to find a web hosting company that specializes in providing enterprise level web hosting

  22. Anonymous

    please help me I have S.O. Windows 7, and IIS 7.5, i have a project in C:inetpubwwwrootfarmaceuticafarmaceutica_local
    if I call to my site(ASP) from IIS it works very well with frontpage or Dreamveaver or other software, appear a mistakes .

    Error HTTP 404.0 – Not Found
    Se ha quitado el recurso que está buscando, se le ha cambiado el nombre o no está disponible en estos momentos.

    I don’t know why ? could you help me please

  23. Anonymous

    You are completely on the mark in your criticisms of the current administration’s trade policies, and, what is more, by refraining from “Type M” arguments, you make it easier for those on the other side of the political divide to voice their agreement

  24. Anonymous

    Hello,

    I am running IIS7 on a Windows 7 box. I can’t seem to either get to my website locally using my local IP address. I use locahost, or my machines name (Kobe) and the website comes up fine. But again, when I type in my local IP (192.168.1.66) the site will not come up. The same goes for when I use my external IP address. I have read all of the post before this one and have done the following troubleshooting;

    Ran portcheck IP 80 and everything comes back “Connected Succesfully” for both my internal and external IP addresses.

    I have Outpost firwall pro running on this PC and have disabled it for testing purposes.

    I have opened port 80 for this PC in my router.

    Still I can’t get the website to come up using both my internal, and external IP addresses… Any suggestions?

  25. Anonymous

    I have followed all the steps. All of them working absolutely fine but still i can not figure out whats the cause of error 404 File or directory not found on my lan vista box.

  26. Anonymous

  27. Anonymous

    I have started from scratch and am getting the sme problem. I am running Windows 7 pro. i get the following error even with friendly error turned off.

    Not Found

    ——————————————————————————–

    HTTP Error 404. The requested resource is not found.

    You may try the site for yourself.

  28. Anonymous

  29. Anonymous

    As discovered by local Brazilians this berry is packed with vitamins and minerals which have a healing effect; in recent acai berry research it has been found to be powerful enough to kill about 80% of cancer cells.

  30. marie10

    Hi there, I have a problem with my local web server. As I was testing my web pages on my local site, I encountered 404 problem.
    Could someone please advise me to my problem? Thank you.
    Energy Medicine

  31. Anonymous

    In IIS, if you switch the binding from Unassigned to a specific IP address, you may want to also Add the 127.0.0.1 to the binding as well otherwise you may get a 404 when using localhost. Then make sure you update the %windir%system32driversetchosts file and add 127.0.0.1 localhost and then your specific IP address and hostname (or machine name if you are not using a hostname).

  32. Anonymous

    Your troubleshooting list seems not to cover the case where the desired bindings are reported by AppCmd list sites, but netstat -a (and actual testing) shows IIS is still not listening on some of the specified IP addresses.

    You leap straight from “AppCmd says the binding is configured and the site is running” to “troubleshooting when the server is listening but returns error pages”

  33. Anonymous

    I found another cause of this error. The IIS site or application’s application pool Managed pipeline mode needs to be set to “Integrated” rather than “Classic”

  34. Anonymous

    Thank you, I fixed my issue on step 3. Noticed in the bindings the hostname was entered in the unavailable server but not in the working web server. Removed it and working. Thanks so much for your easy to follow guides.

  35. myfault

    Hi
    I have an SCCM/CA. My problem is that a client XP, works, it cant get the IIS confirmation on the web page. But from windows 7, i usually get this “resource (xxx.xxx.local) is online but isn’t responding to connection attempts. This is using port 80 443 on the firewalls. Both XP and windows 7 have the same firewall configuration. The windows 7 can ping both the name and IP address of the sccm. I hope you can help em in this matter.

  36. The ping could not find.
    >net start w3svc
    The requested service has already been started.

    When I try:
    > %windir%system32inetsrvAppCmd.exe list sites
    I get:
    ‘C:windowssystem32inetsrvAppCmd.exe’ is not recognized as an internal of external command, operable or batch file.

Leave a Reply

Your email address will not be published. Required fields are marked *