IIS 7.5 doesn't load static html pages

IIS 7/7.5 has a new "feature" - Role Services. The post from rsbarro reminded me that there is one role service that is responsible for static content. It's Web Server/Common HTTP Features/Static Content. Check if MIME Types icon is present in IIS Manager, as rsbarro suggested.

You need to install the Static Content role service if it does not. To do that, select the:

  • Server Manager
  • Roles
  • Web Server (IIS) node from the left pane
  • scroll to Role Services window
  • see if the Static Content role service is installed.

From what you describe, this seems to be your problem.

In general, if IIS7 doesn't do something that IIS6 did, the first thing to check is to see if the correspondent role service is installed. Hope this helps.


Under IIS, go to your web site and check the MIME Types section (see image below). Make sure you see entries in that list for .js, .css, .html, etc, and that they have the proper MIME type specified. IIS 7.5 will only serve up pages if there is a MIME type specified. By default, the MIME types for these extensions are setup in the applicationHost.config file located in C:\Windows\system32\inetsrv\config folder (you may have to run notepad as an Administrator to view the file). Just search for .js and you should find an entry under <mimeMap> in the <staticContent> element.

iis mime types

These settings can be overriden in your web.config file. If they are they will appear in the following location in the web.config:

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

I would definitely start by checking there. If everything looks ok under the MIME types section, then it's possible you have a module that is interfering with the requests for static files (but most likely only if you have <modules runAllManagedModulesForAllRequests="true" /> set in your <system.webServer> section). If that's the case I would remove all modules setup in your web.config and see if you can bring up the static files, and then readd them one at a time to see which module is causing the problem. If you can't figure it out then I would suggest posting the contents of your web.config (or at least the system.web and system.webServer sections) in the question.


I had the same issue, but my app pool was running under a domain account and that user had rights to the website folder. My website rendered aspx but no static content. What resolved my issue was to add the IIS_IUSRS group to the local security policy called "impersonate a client after authentication'". IIS_IUSRS group had my domain account in it. I am running iis 7.5 windows 2008 server.