Я пытаюсь получить следующие (и подобные) URL-адреса для работы в моем проекте ASP.net MVC4/WebApi:
http://127.0.0.1:81/api/nav/SpotiFire/SpotiFire.dll
Маршрут, отвечающий за этот URL-адрес, выглядит следующим образом:
config.Routes.MapHttpRoute(
name: "Nav",
routeTemplate: "api/nav/{project}/{assembly}/{namespace}/{type}/{member}",
defaults: new { controller = "Nav", assembly = RouteParameter.Optional, @namespace = RouteParameter.Optional, type = RouteParameter.Optional, member = RouteParameter.Optional }
);
Он отлично работает, если я удаляю. в имени файла или добавлении косой черты за URL-адресом, но это также означает, что я не могу использовать методы Url.Route
и т.д. Ошибка, которую я получаю, является общей ошибкой 404 (изображение ниже).
Я попытался добавить <httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" />
в свой web.config, и я также попытался добавить
<compilation debug="true" targetFramework="4.5">
<buildProviders>
<remove extension=".dll"/>
<remove extension=".exe"/>
</buildProviders>
</compilation>
И ничто из этого не работает. Итак, мой вопрос в основном, как я могу заставить этот URL работать и правильно отображать?