我们在 .NET 6 中开发了一个具有多个端点的中间件服务 Web API 应用程序,并将其部署到 Azure。我们在实现
POST
方法的端点上遇到了一个奇怪的错误。
如果我们将端点的版本从 v2.1 更改为 v3,Azure 将返回 http 403 错误 - 它在本地环境中完美运行。
回顾一下:
{{Baseurl}}/bookings/api/v2.1/checkout/nexi -> Ok (200)
{{Baseurl}}/bookings/api/v3/checkout/nexi -> Ko 403
在控制器中,我们仅更新了版本,没有其他更改。
azure怎么可能停止V3版本API上的请求?除此以外的所有端点都可以完美工作。
我们发现问题是请求中的一个对象,但我们仍然不明白为什么这只是 v3 版本端点的问题
免责声明 可用信息有限,而且目前还无法诊断其他端点在更改路由后的行为方式。因此,以下所有内容都是猜测,很可能完全无关且具有误导性。
我注意到两件事。首先,它似乎在本地系统上表现符合预期(就我的经验而言,一般情况下在服务器上也是如此)。所以你的特定托管环境在这里是值得怀疑的。
第二件事是不常见的状态代码:403 ko。它给我一种臭概念的感觉,因为它应该是403 Forbidden,这意味着用户已被识别(已登录,因此没有401 Unauthorized)。
所以我的**猜测*时间是,无论是谁设置了你的托管(基础设施人员、开发人员或管理你所在位置的服务器环境的人),都会发出嘘声并以某种方式阻止某些模式转发到应用程序。
这可能是由于负载均衡器设置、docker 编排、网关配置以及开发人员应该知道但不愿意使用的其他一些奇怪的地方造成的。
您有权访问服务器环境的这些属性吗?或者,至少,您可以与这样做的人交谈吗?