ApiController возвращает 404, когда идентификатор содержит период

У меня есть ApiController, и я хочу использовать адреса электронной почты в качестве параметра ID для запросов:

// GET api/employees/[email protected] public CompactEmployee Get(string id) { var email = id; return GetEmployeeByEmail(email); } 

Однако я не могу заставить это работать (возвращает 404 ):

http://localhost:1080/api/employees/[email protected]

Следующие работы:

Я установил relaxedUrlToFileSystemMapping="true" в моем web.config, подробно relaxedUrlToFileSystemMapping="true" Филом Хааком .

Мне очень понравился бы полный адрес электронной почты для работы, но в любой момент времени за ним следует любой другой символ, запрос возвращает 404. Любая помощь будет принята с благодарностью!

Решение

Из-за отсутствия других вариантов я направился в направлении, предложенном Мэгги, и использовал ответ из этого вопроса, чтобы создать правило перезаписи, чтобы автоматически добавлять конечную косую черту, когда мне нужно электронное письмо в URL-адресе.

  ....          

Добавил бы трейлинг-косую черту для вашего сценария?

 http://localhost:33021/api/employees/[email protected]/ 

Проверьте настройки IIS:

Home Directory -> Configuration

Отредактируйте расширение приложения .aspx и убедитесь, что параметр Verify that file exists the Verify that file exists отключен.

ОБНОВИТЬ

Я только что протестировал проект MVC4 Web API по умолчанию

URL: http://localhost:10983/api/values/[email protected]

Действие в ValuesController :

 public string Get(string id) { return id; } 

Это был ответ:

 [email protected] 
  • Как использовать Container вместо ObjectFactory в StructureMap ServiceActivator?
  • Как создать две строки нижнего колонтитула в jqgrid
  • Как генерировать и автоматически увеличивать Id с Entity Framework
  • WCF vs ASP.NET Web API
  • Веб-API Queryable - как применять AutoMapper?
  • Как получить данные POST в WebAPI?
  • Выбросить HttpResponseException или вернуть Request.CreateErrorResponse?
  • Включить CORS в Web API 2
  • Поддержка ASP.Net WebAPI
  • Аутентификация на основе токена в веб-API без какого-либо пользовательского интерфейса
  • Как создать URL веб-API ASP.NET?
  • Давайте будем гением компьютера.