查询字符串包含IIS 10上托管的WebApi的com1时出现404错误

时间:2019-05-31 17:03:42

标签: c# .net asp.net-web-api iis-10

我在IIS10上托管了一个简单的WebApi解决方案。

我有一个继承ApiController的ProductController类。此类具有方法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 个答案:

答案 0 :(得分:1)

Željko Huber建议的博客为我工作。 blog post

答案 1 :(得分:0)

确保productNamed和productName匹配,最近我也遇到了一个错误,因为名称不匹配..疯狂的哈哈,我正在使用Swagger,当我只需要一个时,它给了我两个字段。 / p>

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

答案 2 :(得分:0)

您的路线名称与参数名称不匹配。将它们都设为“ productNamed”或“ productName”。