以往我們開發Web網頁的系統,在上正式台時,會在Web.Config中設定CustomErrors,讓錯誤發生時導向到我們指定的一個html,不把正確的錯誤訊息或狀態露出。但在WebAPI的時候,卻出現【執行第一個例外狀況的自訂錯誤頁面時發生另一個例外狀況。要求已終止。】的訊息。然後就持續的被賞500,這部分該如何處理,我們繼續看下去
緣起
以往我們開發Web網頁的系統,在上正式台時,會在Web.Config中設定CustomErrors,讓錯誤發生時導向到我們指定的一個html,不把正確的錯誤訊息或狀態露出。但在WebAPI的時候,卻出現【執行第一個例外狀況的自訂錯誤頁面時發生另一個例外狀況。要求已終止。】的訊息。然後就持續的被賞500,這部分該如何處理,我們繼續看下去
錯誤訊息:執行第一個例外狀況的自訂錯誤頁面時發生另一個例外狀況。要求已終止
測試的方式,本來的API網址是【http://localhost:1234/api/value】,改為【http://localhost:1234/api/%20/value】,本來預期是,會轉到指定的錯誤畫面,http status是200,但是,卻出現【執行第一個例外狀況的自訂錯誤頁面時發生另一個例外狀況。要求已終止。】,http status回應是【500】。
解決方式:【redirectMode="ResponseRewrite"】
原本web.config中,的customErrors定如下:
<customErrors defaultRedirect="~/GenericError.htm" mode="On" />
只需要補上【redirectMode="ResponseRewrite"】,變為如下,即可正常的運作了
<customErrors redirectMode="ResponseRewrite" defaultRedirect="~/GenericError.htm" mode="On" />
特別筆記下來,也提供大家參考
^_^
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |