iT邦幫忙

0

ASP.NET Core Web API 當 HttpGet 以外的方法出現例外錯誤時,都會回傳 405 狀態

  • 分享至 

  • xImage

各位好,

目前測試 Web API 的例外錯誤收集,卻遇到一個問題,測試的方法如下圖:
https://ithelp.ithome.com.tw/upload/images/20230419/20143199r09SwLyWPT.png

除了使用 HttpGet 的方法外,其他都會回應 405 狀態如下圖:
https://ithelp.ithome.com.tw/upload/images/20230419/20143199mQXgMMfNS6.png

以上回傳 405 問題只會發生在該 API 出現方法出現例外錯誤,若無例外錯誤是可以正常使用 PUT、DELETE 等方法,希望各位先進能協助解惑,謝謝。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Samuel
iT邦好手 1 級 ‧ 2023-04-20 07:29:44
最佳解答

因為 ASP.NET Core Web API 的預設行為是當未處理的例外錯誤發生時,將自動
回傳 HTTP 405 狀態碼。
因為未處理的例外錯誤可能會暴露應用程式的漏洞。

你可以嘗試在middleware那裏添加error共用的處理路由
https://learn.microsoft.com/en-us/aspnet/core/web-api/handle-errors?view=aspnetcore-6.0

其他可能引發405問題的可能
https://coolmandiary.blogspot.com/2021/12/aspnet-webapi2004frombodyfromuri.html

睿之 iT邦新手 5 級 ‧ 2023-04-20 09:31:23 檢舉

感謝回覆,後來發現是以下問題:
https://ithelp.ithome.com.tw/upload/images/20230420/20143199p1IL0kAeXs.png
習慣性的把 API 加上了方法屬性標記,結果導致除了 Get 以外都回應 405,拿掉之後就都正常了。

我要發表回答

立即登入回答