我正在为我的Web API编写一些模糊测试,我在IIS 8.5和IIS 10.0之间的HTTP返回代码中遇到了一些差异。我的API中有以下方法:
[Route("{id:int}/GetSomething")]
[HttpGet]
public async Task<IHttpActionResult> GetSomething(int id)
{
return Ok(2);
}
这给出了API调用
http://server/api/Something/5/GetSomething
运作良好。
在模糊测试期间,我尝试对API进行不同的随机输入,例如字符串而不是int:
http://server/api/Something/asdf/GetSomething
当我在IIS Express 10.0上托管我的API时,StatusCode是&#34; 404 Not Found&#34;。 当我在Windows Server 2012 R2上的IIS 8.5上托管我的API时,StatusCode是&#34; 401 Unauthorized&#34;。
当我尝试插入空格时:
http://server/api/Something/ /GetSomething
两台服务器都返回&#34; 404 Not Found&#34;。
为什么它们对字符串输入的行为有所不同?有没有办法配置任何一个表现得像另一个?