WebApi2总是重定向第一个请求



我有一个托管在IIS上的ASP.NET WebApi2项目。每个GET请求都被重定向到与原始请求相同的位置,但重定向(正确地(去掉了身份验证标头,因此请求以401失败。

怎么回事?为什么我最初的GET请求总是被重定向?

卷曲:

curl https://localhost/myapp/api/test

控制器:

public class TestController : ApiControllerBase
{
[HttpGet]
[ApiAuthorize]
[Route("api/test")]
public IHttpActionResult Get()
{
return Ok();
}
[HttpPost]
[ApiAuthorize]
[Route("api/test")]
public IHttpActionResult Post()
{
return Ok();
}
}

IIS日志:

2020-07-31 14:48:32 127.0.0.1 GET /mysite/api/test - 443 - 127.0.0.1 PostmanRuntime/7.26.2 - 302 0 0 13
2020-07-31 14:48:32 127.0.0.1 GET /MySite/api/test - 443 - 127.0.0.1 PostmanRuntime/7.26.2 https://server/mysite/api/Test 401 0 0 458

原来重定向是由IIS本身触发的。最初的请求是https://localhost/myapp/api/test,但我的应用程序在默认网站下注册为应用程序MyApp

看起来重定向是IIS更正原始请求,以说明myapp:https://localhost//MySite/api/Test的不同大小写

不确定这是设计的还是默认行为,但它花了我2天的调试时间:-(

相关内容

最新更新