ASP.NET MVC / IIS 7.5: 500 Internal Server Error for static content only

asp.net-mvc, iis, mime-types

Solution

I enabled Failed Request tracing and after searching through the (enormous) log, I discovered this:

 <EventData>
  <Data Name="ContextId">{00000000-0000-0000-3700-0080010000FC}</Data>
  <Data Name="ModuleName">CustomErrorModule</Data>
  <Data Name="Notification">536870912</Data>
  <Data Name="HttpStatus">500</Data>
  <Data Name="HttpReason">Internal Server Error</Data>
  <Data Name="HttpSubStatus">19</Data>
  <Data Name="ErrorCode">2147942583</Data>
  <Data Name="ConfigExceptionInfo">
    \\?\C:\Websites\xxx\www\web.config ( 58) :Cannot add duplicate collection 
    entry of type &apos;mimeMap&apos; with unique key attribute 
    &apos;fileExtension&apos; set to &apos;.woff&apos;
  </Data>
 </EventData>

What has happened is, a new Mime type for serving web-fonts (.woff) had been explicity added to the site.

Later on, the new Mime type (.woff) had also been added to the global IIS mime types.

Instead of the website setting overriding the global setting, an exception was being thrown.

Problem

An ASP.NET MVC project running under IIS 7.5 (but problem may exist on earlier versions and non-MVC sites) which was previously working has started returning 500 Internal Server Error but only for content handled by the static handler - images, pages etc. handled by MVC itself through a controller work fine. I know what caused it - I am documenting this in case somebody else has the same problem.

Original source