簡體   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