Запретить обработчику статических файлов перехватывать URL-адрес, похожий на имя файла

В моем веб-приложении у меня есть маршрут, который выглядит следующим образом:

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

Идея этого пути заключалась в том, чтобы лучше работать с сервером Microsoft AD FS (2.0+), который ищет метаданные AD FS на этом этапе, когда вы просто указываете имя хоста. С MVC3 все работало нормально. Но мы недавно обновили проект до MVC4, и теперь вызов для этого URL приводит к 404, обработчик, упомянутый на странице ошибки:StaticFile и физический путьD:\path\to\my\project\FederationMetadata\2007-06\FederationMetadata.xml, Я предполагаю, что MVC или ASP.NET «думает», что это должен быть запрос статического файла, и ищет файл, но это не файл. Данные генерируются динамически - поэтому я перенаправил URL на действие контроллера. Проблема в том, что даже Route Debugger от Phil Haack не работает. Это просто 404 без дополнительной информации, кроме того, что IIS пытался получить доступ к физическому файлу, которого там нет.

У кого-нибудь есть решение для этого? Я просто хочу, чтобы этот URL был направлен на действие контроллера.

П.С .: Яне 100% уверен, что причиной было обновление до MVC4, это было только предположение, потому что ошибка произошла примерно в то же время, что и обновление, и тот же маршрут работает в другом проекте, который все еще использует MVC3.

Редактировать:

У меня есть обычайControllerFactory которому нужно полное имя класса (AdfsController вместоAdfs), поэтому суффиксController правильно в этом случае.

Ответы на вопрос(2)

Ваш ответ на вопрос