發送 IIS http 錯誤代碼而不發送堆疊追蹤

發送 IIS http 錯誤代碼而不發送堆疊追蹤

我有一個基於 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),您可以自訂該視圖以根據需要公開盡可能多或盡可能少的錯誤資訊。

華泰

相關內容