Передача строки 'BIN' в качестве параметра маршрута в. Net Framework 4.7.2 WebApi - PullRequest
1 голос
/ 04 февраля 2020

У меня есть метод API с атрибутом маршрута, определенным как [Route("{code:regex([A-Za-z-])}")], с префиксом маршрута для класса [RoutePrefix("Api/v1/Entities")], который работает, как и ожидалось, почти во всех случаях, например, GET https://api.whatever/Api/v1/Entities/ABC.

Однако, если я передаю строку 'BIN' в качестве параметра маршрута, такого как GET https://api.whatever/Api/v1/Entities/BIN, метод возвращает клиенту 404 без выполнения кода или запуска каких-либо точек останова в методе.

Это происходит при тестировании на моем локальном компьютере и при развертывании приложения в Azure Службе приложений (возможно, оба используют некоторую версию IIS). Я уже установил relaxedUrlToFileSystemMapping="true" в своем файле Web.config, как рекомендуется для других подобных проблем, но он не решил эту проблему. Любые возможные исправления кода для этого или я должен делать другие изменения, чтобы избежать необходимости передавать 'BIN' в качестве параметра маршрута? Благодаря.

1 Ответ

0 голосов
/ 04 февраля 2020

Удалить BIN из скрытых сегментов.

Документация Microsoft по скрытым сегментам

Под вашим сайтом IIS нажмите на RequestFiltering. На панели «Фильтрация запросов» перейдите на вкладку «Скрытые сегменты» и удалите bin.

.
...