Приложение MVC 5 не будет обрабатывать файл aspx, если RouteExistingFiles = true
Я имею routes.RouteExistingFiles = true;
в RouteConfig.cs в приложении ASP.NET MVC 5. Он не будет обрабатывать файл aspx. Если я попытаюсь открыть URI, такой как "/api/latest/Default.aspx", я получу только какой-то XML с этими специфическими сообщениями:
<Error>
<Message>No HTTP resource was found that matches the request URI 'http://localhost:58341/api/latest/Default.aspx'.</Message>
<MessageDetail>No type was found that matches the controller named 'latest'.</MessageDetail>
</Error>
Приложение не имеет проблем с обслуживанием физических файлов. Если я помещаю html-файл в ту же директорию, он прекрасно работает. Я попытался добавить каждую из следующих трех строк в мой RegisterRoutes:
routes.IgnoreRoute("api");
routes.IgnoreRoute("api/{*pathInfo}");
Никто из них не работал.
Кажется, он пытается перенаправить мой URL на маршрут, который выглядит как "api/{controller}", что странно, потому что у меня нет маршрутов, которые бы помещали контроллер в качестве второго аргумента! Я также попытался закомментировать все мои маршруты - он по-прежнему выдает то же сообщение об ошибке и не обрабатывает файл aspx.
Мне нужно иметь RouteExistingFiles = true, потому что я использую это, чтобы обеспечить контроль авторизации для загрузки определенных файлов.
Кажется, что я мог бы что-то добавить к <system.webServer><handlers>
чтобы исправить это, но я не знаю что.
Могу ли я заставить это работать?
RouteConfig.cs:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("api");
routes.IgnoreRoute("api/*.aspx");
routes.RouteExistingFiles = true;
}
}