繁体   English   中英

API 抛出错误的响应代码 500 内部错误而不是 204

[英]The API is throwing wrong response code 500 internal error instead 204

我们观察到 API 响应代码的行为突然发生变化。 在我的本地系统中,它正在重新调整204 - No Content fine 但是,在部署到Azure App Service (运行 ASP.NET 4.8 堆栈)后,它返回500 个内部错误(从 Post man 工具请求,如附图所示)

请注意:它之前使用相同的代码在 App Service 中工作

我们可以使用下面的简单代码在 Web API 中重现该问题(我使用的是 4.6.1 FW)

怀疑是由于某些通行证级别发生了变化。 如果有人面临类似问题或任何解决此问题的线索,请分享。

使用下面的代码行 Web API 并触发请求 Local vs App Service 来重现问题很简单(如果有人可以重现以理解我试图传达的真正问题,那就太好了。谢谢。

代码片段在此处输入图像描述

本地:没有问题在此处输入图像描述

部署到 App Service 后出现问题在此处输入图像描述

此问题的根源:经过与 Microsoft Teams 的大量分析和讨论,了解最近在 Azure 前端引入了更高的安全合规性。 此更改强制内容不应返回 HTTP 204。 (参考来源: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

为什么它能更早地工作:因为它是兼容的,即使我们之前在 204 响应中返回内容也没有问题。

减轻

  • 方法 1:避免使用 204 响应返回内容。
  • 方法 2:禁用安全合规性作为快速修复并慢慢更新您的代码以不返回带有 204 响应的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM