Ошибка 404, когда строка запроса содержит com1 для WebApi, размещенного на IIS 10 - PullRequest
1 голос
/ 31 мая 2019

У меня есть простое решение WebApi, размещенное на IIS10.

У меня есть класс ProductController, который наследует ApiController.У этого класса есть метод GetProduct

 [HttpGet]
    [Route("api/product/{productName}")]
    public object GetProduct(string productName)
    {
        return "abc";
    }

Когда я пытаюсь запустить следующий API через почтальона

http://localhost:10000/api/product/com1?query=test

Я получаю ошибку 404, Попытался создатьпапка с тем же именем (com1), но также с ошибкой.Затем обнаружил, что у меня не может быть следующих значений в моем API CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 и LPT9.

Я попытался добавить следующие записи в IIS в разделе Фильтрация запросов

enter image description here

Я пропускаюна что-нибудь?

Ответы [ 3 ]

2 голосов
/ 01 июня 2019

блог, предложенный Желько Хубер работал на меня. сообщение в блоге

0 голосов
/ 31 мая 2019

Ваше имя маршрута не соответствует имени параметра. Сделайте их обоих «productNamed» или «productName».

0 голосов
/ 31 мая 2019

убедитесь, что productNamed и productName совпадают, я недавно тоже столкнулся с ошибкой, потому что имена не совпадали ... с ума, ха-ха, я использовал Swagger, и он дал мне два поля для заполнения, когда мне был нужен только один ..

 [HttpGet]
 [Route("api/product/{productName}")]
 public object GetProduct(string productName)
 {
     return "abc";
 }
...