I got error 404 for a file extension. I did allow it in extension filter it didn't solve, whereas in mime type it's then ok. So what's the purpose of adding a file extension ?
If MIME Type is not defined IIS will return 404.3 code. Apparently this behaviour is by design.
"Extension filtering" (Request Filtering -> File Name Extensions) became part of IIS as of v7. For IIS v7.0 you had to download Administration Pack to have it.
Request Filtering is a built-in security feature that replaces much of the functionality that was available through the UrlScan add-on for IIS 6.0. When Request Filtering blocks an HTTP request, IIS 7 will return an HTTP 404 error to the client and log the HTTP status with a unique substatus that identifies the reason that the request was denied. 404.7 = File Extension Denied.
With help of Request Filtering you can configure your website/application to not to serve files with specific extensions which otherwise would be available to download. Just an example (not the best, but): lets assume that any *.inc file will be served as plain text, but one of your websites uses this extension for a different purposes (to store some configuration details, for example). This can be easily achieved with the help of Request Filtering.
You can also configure it other way around -- to deny all extensions (for static files only) except those that are explicitly allowed.