我有一個基於 ASP.NET 的 API,需要在發生 http 錯誤代碼時將其從伺服器傳送到客戶端。我不希望將包含堆疊追蹤的完整詳細庫存錯誤訊息發送給用戶,但簡單的「發生錯誤」訊息就可以了。
IIS 的預設行為是始終向非本地客戶端發送 http 500。我已經能夠發送詳細的錯誤訊息(帶有錯誤代碼);但是否可以以某種方式停用詳細資訊?
如果沒有,是否可以新增一個可用於所有錯誤的自訂錯誤文件,並仍然將特定的錯誤代碼傳送給客戶端?
答案1
實際上,我自己的 MVC 應用程式之一的情況恰恰相反。我收到的是自訂錯誤頁面而不是完整錯誤。您的應用程式應在 App_Start 中包含 FilterConfig.cs 檔案。該文件應如下所示:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
當 customErrors 啟用時,這應該會顯示 Error.cshtml 共享視圖 (~/Views/Shared/Error.cshtml),您可以自訂該視圖以根據需要公開盡可能多或盡可能少的錯誤資訊。
華泰