WebApi在参数包含(.)时返回404

本文关键字:返回 参数 包含 WebApi | 更新日期: 2023-09-27 18:05:43

我有一些非常奇怪的行为发生了,可能是设计的,但这对我来说没有意义

我有一个简单的端点

 [Route("EmailUsed/{emailaddress}")]
 [HttpGet]
 [AllowAnonymous]
 public IHttpActionResult IsEmailInUse(string emailaddress)
 {
   return Ok(true);
 }

当我尝试调用端点时,每当我尝试添加一个。在emailaddress参数中,例如email@gmail.com,如果我传递email@gmailcom的参数,它工作得很好。

我是不是忽略了一些非常愚蠢的事情?

WebApi在参数包含(.)时返回404

这通常与IIS级别的输入验证有关。您可以在Web中禁用它。您可能需要稍微摆弄一下才能找到正确的Web。配置值以使其工作。我想是:

<system.web>
    <pages validateRequest="false" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>