Я использую MVC4 и должен направить такой запрос контроллеру:
[myapp]/data/fileinfo.xml
Вот маршрут, который я настроил:
routes.MapRoute(
name: "Data",
url: "Data/{file}",
defaults: new { controller = "Data", action = "fileinfo"}
);
Теперь это прекрасно работает и направляет запросы моему DataController, если URL-адрес не включает расширение .xml, но как только используется расширение, IIS пытается обслуживать статический файл (вместо маршрутизации на мой контроллер), и я получаю ошибку 404.
Я прочитал множество вопросов/ответов об этой проблеме в Интернете, и каждое исправленное мной решение потерпело неудачу.
Например, я попытался использовать RouteExistingFiles = true
при настройке моего RouteCollection, и я добавил <modules runAllManagedModulesForAllRequests="true" />
в web.config, но безрезультатно.
Если у кого-то есть представление о том, что я должен попробовать или чего я могу пропустить, это было бы очень признательно. Я использую asp.Net 4.5, VS 2012 и IIS 8.0.