Evita que el manejador de archivos estáticos intercepte una URL similar a un nombre de archivo

En mi aplicación web tengo una ruta que se parece a esto:

routeCollection.MapRoute(
    "AdfsMetadata",                                                // name
    "FederationMetadata/2007-06/FederationMetadata.xml",           // url
    new { controller = "AdfsController", action = "MetaData" });   // defaults

La idea detrás de esta ruta era trabajar mejor con el servidor Microsoft AD FS (2.0+) que busca metadatos de AD FS en este punto cuando solo especifica un nombre de host. Con MVC3 todo funcionó bien. Pero recientemente hemos actualizado el proyecto a MVC4 y ahora la llamada para esta URL da como resultado un 404, el controlador mencionado en la página de error esStaticFile y el camino físico esD:\path\to\my\project\FederationMetadata\2007-06\FederationMetadata.xml. Supongo que MVC o ASP.NET "piensan" que debe ser una solicitud de un archivo estático y busca el archivo, pero no es un archivo. Los datos se generan dinámicamente, por eso enruté la URL a una acción del controlador. El problema es que incluso el Depurador de rutas de Phil Haack no funciona. Es solo un 404 sin más información además de que IIS intentó acceder a un archivo físico que no está allí.

¿Alguien tiene una solución para esto? Solo quiero que esta URL se enrute a una acción del controlador.

P. S .: yo soyno 100% seguro de que la causa fue la actualización a MVC4, fue solo una conjetura porque el error ocurrió casi al mismo tiempo que la actualización, y la misma ruta funciona en otro proyecto que aún usa MVC3.

Editar:

Tengo una costumbreControllerFactory que necesita el nombre completo de la clase (AdfsController en lugar deAdfs), asi el sufijoController Es correcto en este caso.

Respuestas a la pregunta(2)

Su respuesta a la pregunta