У меня есть сайт ASP.Net MVC 2, настроенный под IIS7 с использованием интегрированного конвейера со следующим маршрутом:
routes.MapRoute(
"MyRoute",
"mycontroller/{name}/{*path}",
new { controller = "MyController", action = "Index", path = UrlParameter.Optional }
);
Нет никаких других маршрутов выше этого маршрута, но всякий раз, когда я пытаюсь получить доступ к вышеуказанному маршруту со значением пути, имеющим расширение .svc
, например:
http://localhost/MyVirtualDirectory/mycontroller/test/somepath.svc
ASP.Net возвращает ошибку 404 без выполнения моего контроллера (у меня есть вызов сообщения журнала в начале метода действия). Если я изменяю расширение на что-то мягкое (например, .txt), оно работает отлично, поэтому кажется, что где-то в строке ASP.Net интерпретирует запрос как стандартный вызов ASP.Net для веб-службы, которая не не существует - это определенно ответ ASP.Net 404 (не ответ IIS).
Что может быть причиной, и как я могу предотвратить это?